diff --git a/apidocs/2.1.1/allclasses-frame.html b/apidocs/2.1.1/allclasses-frame.html
new file mode 100644
index 0000000..dc75aa9
--- /dev/null
+++ b/apidocs/2.1.1/allclasses-frame.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar">All Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AbstractCompoundDataset</a></li>
+<li><a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AbstractDataset</a></li>
+<li><a href="org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AggregateDataset</a></li>
+<li><a href="org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>ARPESMetadata</i></a></li>
+<li><a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>AxesMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>BinaryOperation</i></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">BinaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanBroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanContiguousIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDataset</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanNullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIteratorBase</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastPairIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSelfIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSingleIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastUtils</a></li>
+<li><a href="org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset" target="classFrame">CollectionStats</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset" target="classFrame">Comparisons</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset" target="classFrame">Comparisons.Monotonicity</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexDoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexFloatDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>CompoundDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundDoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundFloatDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundIntegerDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundLongDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundShortDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousIteratorWithPosition</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousPairIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousSingleIterator</a></li>
+<li><a href="org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset" target="classFrame">DataEvent</a></li>
+<li><a href="org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset" target="classFrame">DataListenerDelegate</a></li>
+<li><a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>Dataset</i></a></li>
+<li><a href="org/eclipse/january/DatasetException.html" title="class in org.eclipse.january" target="classFrame">DatasetException</a></li>
+<li><a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset" target="classFrame">DatasetFactory</a></li>
+<li><a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DatasetUtils</a></li>
+<li><a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>DateDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset" target="classFrame">DateDatasetImpl</a></li>
+<li><a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>DimensionMetadata</i></a></li>
+<li><a href="org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Dirtiable</a></li>
+<li><a href="org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">DoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DTypeUtils</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata" target="classFrame">DynamicConnectionInfo</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata" target="classFrame">DynamicMetadataUtils</a></li>
+<li><a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>ErrorMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">FloatDataset</a></li>
+<li><a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io" target="classFrame"><i>IDataAnalysisObject</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDataListener</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDatasetChangeChecker</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDatasetConnector</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDynamicDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDynamicShape</i></a></li>
+<li><a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>IExtendedMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IFileConnection</i></a></li>
+<li><a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazyAsyncSaver</i></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>ILazyDataset</i></a></li>
+<li><a href="org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazyDynamicLoader</i></a></li>
+<li><a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazyLoader</i></a></li>
+<li><a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazySaver</i></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>ILazyWriteableDataset</i></a></li>
+<li><a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>IMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IMetadataProvider</i></a></li>
+<li><a href="org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><i>IMetaLoader</i></a></li>
+<li><a href="org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january" target="classFrame"><i>IMonitor</i></a></li>
+<li><a href="org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january" target="classFrame">IMonitor.Stub</a></li>
+<li><a href="org/eclipse/january/INameable.html" title="interface in org.eclipse.january" target="classFrame"><i>INameable</i></a></li>
+<li><a href="org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IndexIterator</a></li>
+<li><a href="org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegerDataset</a></li>
+<li><a href="org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegerIterator</a></li>
+<li><a href="org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegersIterator</a></li>
+<li><a href="org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">InterpolatorUtils</a></li>
+<li><a href="org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IOperation</i></a></li>
+<li><a href="org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IRemoteData</i></a></li>
+<li><a href="org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDataset</a></li>
+<li><a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDynamicDataset</a></li>
+<li><a href="org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyMaths</a></li>
+<li><a href="org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyWriteableDataset</a></li>
+<li><a href="org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset" target="classFrame">LinearAlgebra</a></li>
+<li><a href="org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset" target="classFrame">LinearAlgebra.NormOrder</a></li>
+<li><a href="org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LongDataset</a></li>
+<li><a href="org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>MaskMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset" target="classFrame">Maths</a></li>
+<li><a href="org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata" target="classFrame">Metadata</a></li>
+<li><a href="org/eclipse/january/MetadataException.html" title="class in org.eclipse.january" target="classFrame">MetadataException</a></li>
+<li><a href="org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata" target="classFrame">MetadataFactory</a></li>
+<li><a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>MetadataType</i></a></li>
+<li><a href="org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">NullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Addition</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Division</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionTowardsFloor</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionWithZero</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Exponentiation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Maximum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Minimum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Multiplication</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Negation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Remainder</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Subtraction</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>OriginMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset" target="classFrame">Outliers</a></li>
+<li><a href="org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>PeemMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">PositionIterator</a></li>
+<li><a href="org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset" target="classFrame">Random</a></li>
+<li><a href="org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Reshapeable</a></li>
+<li><a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">RGBDataset</a></li>
+<li><a href="org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset" target="classFrame">RunningAverage</a></li>
+<li><a href="org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset" target="classFrame">ShapeChangeChecker</a></li>
+<li><a href="org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">ShapeUtils</a></li>
+<li><a href="org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ShortDataset</a></li>
+<li><a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SingleInputBroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SingleItemIterator</a></li>
+<li><a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset" target="classFrame">Slice</a></li>
+<li><a href="org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Sliceable</a></li>
+<li><a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceIterator</a></li>
+<li><a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceND</a></li>
+<li><a href="org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceNDIterator</a></li>
+<li><a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>StatisticsMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset" target="classFrame">Stats</a></li>
+<li><a href="org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">StrideIterator</a></li>
+<li><a href="org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">StringDataset</a></li>
+<li><a href="org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">StringDatasetBase</a></li>
+<li><a href="org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Transposable</a></li>
+<li><a href="org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>UnaryOperation</i></a></li>
+<li><a href="org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">UnaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>UnitMetadata</i></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/allclasses-noframe.html b/apidocs/2.1.1/allclasses-noframe.html
new file mode 100644
index 0000000..307d9e6
--- /dev/null
+++ b/apidocs/2.1.1/allclasses-noframe.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar">All Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></li>
+<li><a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></li>
+<li><a href="org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></li>
+<li><a href="org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><i>ARPESMetadata</i></a></li>
+<li><a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><i>AxesMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><i>BinaryOperation</i></a></li>
+<li><a href="org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></li>
+<li><a href="org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></li>
+<li><a href="org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></li>
+<li><a href="org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><i>CompoundDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></li>
+<li><a href="org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></li>
+<li><a href="org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></li>
+<li><a href="org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></li>
+<li><a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><i>Dataset</i></a></li>
+<li><a href="org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></li>
+<li><a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></li>
+<li><a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></li>
+<li><a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><i>DateDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></li>
+<li><a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><i>DimensionMetadata</i></a></li>
+<li><a href="org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata">Dirtiable</a></li>
+<li><a href="org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></li>
+<li><a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></li>
+<li><a href="org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">DynamicMetadataUtils</a></li>
+<li><a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><i>ErrorMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></li>
+<li><a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><i>IDataAnalysisObject</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><i>IDataListener</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><i>IDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><i>IDatasetChangeChecker</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><i>IDatasetConnector</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><i>IDynamicDataset</i></a></li>
+<li><a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><i>IDynamicShape</i></a></li>
+<li><a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><i>IExtendedMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><i>IFileConnection</i></a></li>
+<li><a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><i>ILazyAsyncSaver</i></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><i>ILazyDataset</i></a></li>
+<li><a href="org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><i>ILazyDynamicLoader</i></a></li>
+<li><a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><i>ILazyLoader</i></a></li>
+<li><a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><i>ILazySaver</i></a></li>
+<li><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><i>ILazyWriteableDataset</i></a></li>
+<li><a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><i>IMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><i>IMetadataProvider</i></a></li>
+<li><a href="org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><i>IMetaLoader</i></a></li>
+<li><a href="org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><i>IMonitor</i></a></li>
+<li><a href="org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></li>
+<li><a href="org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><i>INameable</i></a></li>
+<li><a href="org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></li>
+<li><a href="org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></li>
+<li><a href="org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></li>
+<li><a href="org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></li>
+<li><a href="org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></li>
+<li><a href="org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><i>IOperation</i></a></li>
+<li><a href="org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><i>IRemoteData</i></a></li>
+<li><a href="org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></li>
+<li><a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></li>
+<li><a href="org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></li>
+<li><a href="org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></li>
+<li><a href="org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></li>
+<li><a href="org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></li>
+<li><a href="org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></li>
+<li><a href="org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><i>MaskMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></li>
+<li><a href="org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></li>
+<li><a href="org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></li>
+<li><a href="org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata">MetadataFactory</a></li>
+<li><a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><i>MetadataType</i></a></li>
+<li><a href="org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></li>
+<li><a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></li>
+<li><a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></li>
+<li><a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><i>OriginMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></li>
+<li><a href="org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><i>PeemMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></li>
+<li><a href="org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></li>
+<li><a href="org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata">Reshapeable</a></li>
+<li><a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></li>
+<li><a href="org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">RunningAverage</a></li>
+<li><a href="org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></li>
+<li><a href="org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></li>
+<li><a href="org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></li>
+<li><a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></li>
+<li><a href="org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></li>
+<li><a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></li>
+<li><a href="org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata">Sliceable</a></li>
+<li><a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></li>
+<li><a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></li>
+<li><a href="org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></li>
+<li><a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><i>StatisticsMetadata</i></a></li>
+<li><a href="org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></li>
+<li><a href="org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></li>
+<li><a href="org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></li>
+<li><a href="org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></li>
+<li><a href="org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata">Transposable</a></li>
+<li><a href="org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><i>UnaryOperation</i></a></li>
+<li><a href="org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></li>
+<li><a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><i>UnitMetadata</i></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/constant-values.html b/apidocs/2.1.1/constant-values.html
new file mode 100644
index 0000000..a76c82d
--- /dev/null
+++ b/apidocs/2.1.1/constant-values.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Constant Field Values (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.eclipse">org.eclipse.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.eclipse">
+<!--   -->
+</a>
+<h2 title="org.eclipse">org.eclipse.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.AbstractDataset.BLOCK_CLOSE">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;char</code></td>
+<td><code><a href="org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a></code></td>
+<td class="colLast"><code>93</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.AbstractDataset.BLOCK_OPEN">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;char</code></td>
+<td><code><a href="org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a></code></td>
+<td class="colLast"><code>91</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYFLOAT32">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a></code></td>
+<td class="colLast"><code>500</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYFLOAT64">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a></code></td>
+<td class="colLast"><code>600</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYINT16">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a></code></td>
+<td class="colLast"><code>200</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYINT32">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a></code></td>
+<td class="colLast"><code>300</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYINT64">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a></code></td>
+<td class="colLast"><code>400</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYINT8">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a></code></td>
+<td class="colLast"><code>100</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.ARRAYMUL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a></code></td>
+<td class="colLast"><code>100</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.BOOL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a></code></td>
+<td class="colLast"><code>0</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.COMPLEX">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a></code></td>
+<td class="colLast"><code>8</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.COMPLEX128">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a></code></td>
+<td class="colLast"><code>8</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.COMPLEX64">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a></code></td>
+<td class="colLast"><code>7</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.DATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#DATE">DATE</a></code></td>
+<td class="colLast"><code>11</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.FLOAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a></code></td>
+<td class="colLast"><code>6</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.FLOAT32">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a></code></td>
+<td class="colLast"><code>5</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.FLOAT64">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a></code></td>
+<td class="colLast"><code>6</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.INT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#INT">INT</a></code></td>
+<td class="colLast"><code>3</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.INT16">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#INT16">INT16</a></code></td>
+<td class="colLast"><code>2</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.INT32">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#INT32">INT32</a></code></td>
+<td class="colLast"><code>3</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.INT64">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#INT64">INT64</a></code></td>
+<td class="colLast"><code>4</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.INT8">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#INT8">INT8</a></code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.OBJECT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a></code></td>
+<td class="colLast"><code>10</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.RGB">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#RGB">RGB</a></code></td>
+<td class="colLast"><code>203</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.serialVersionUID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#serialVersionUID">serialVersionUID</a></code></td>
+<td class="colLast"><code>-6891075135217265625L</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.Dataset.STRING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></td>
+<td class="colLast"><code>9</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.IDynamicDataset.UNLIMITED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED">UNLIMITED</a></code></td>
+<td class="colLast"><code>-1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.IDynamicShape.UNLIMITED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/IDynamicShape.html#UNLIMITED">UNLIMITED</a></code></td>
+<td class="colLast"><code>-1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.dataset.ILazyWriteableDataset.UNLIMITED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/eclipse/january/dataset/ILazyWriteableDataset.html#UNLIMITED">UNLIMITED</a></code></td>
+<td class="colLast"><code>-1</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.io.ILazyLoader.serialVersionUID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/eclipse/january/io/ILazyLoader.html#serialVersionUID">serialVersionUID</a></code></td>
+<td class="colLast"><code>-611684979804645511L</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.io.<a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.io.ILazySaver.serialVersionUID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/eclipse/january/io/ILazySaver.html#serialVersionUID">serialVersionUID</a></code></td>
+<td class="colLast"><code>1366057382940519510L</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.eclipse.january.metadata.IMetadata.serialVersionUID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<td><code><a href="org/eclipse/january/metadata/IMetadata.html#serialVersionUID">serialVersionUID</a></code></td>
+<td class="colLast"><code>8640458661665962384L</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/deprecated-list.html b/apidocs/2.1.1/deprecated-list.html
new file mode 100644
index 0000000..bde0071
--- /dev/null
+++ b/apidocs/2.1.1/deprecated-list.html
@@ -0,0 +1,320 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Deprecated List (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#method">Deprecated Methods</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
+<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">org.eclipse.january.dataset.AbstractDataset.checkAxis(int, int)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20int[],%20int)">org.eclipse.january.dataset.DatasetFactory.compoundZeros(int, int[], int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#compoundZeros(int, Class, int)</code></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(int)">org.eclipse.january.dataset.RGBDataset.createBlueDataset(int)</a>
+<div class="block"><i>Use <code>RGBDataset#createBlueDataset(Class)</code></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(int,%20java.lang.Object,%20java.lang.Object)">org.eclipse.january.dataset.DatasetFactory.createComplexDataset(int, Object, Object)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)"><code>DatasetFactory.createComplexDataset(Class, Object, Object)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(int,%20java.lang.Object...)">org.eclipse.january.dataset.DatasetFactory.createCompoundDataset(int, Object...)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)"><code>DatasetFactory.createCompoundDataset(Class, Object...)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList(int,%20java.util.List)">org.eclipse.january.dataset.DatasetFactory.createFromList(int, List<?>)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)"><code>DatasetFactory.createFromList(Class, List&lt;?&gt;)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20int,%20java.lang.Object,%20int...)">org.eclipse.january.dataset.DatasetFactory.createFromObject(int, int, Object, int...)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)"><code>DatasetFactory.createFromObject(int, Class, Object, int...)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object)">org.eclipse.january.dataset.DatasetFactory.createFromObject(int, Object)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#createFromObject(Class, Object, int)</code></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object,%20int...)">org.eclipse.january.dataset.DatasetFactory.createFromObject(int, Object, int...)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(int)">org.eclipse.january.dataset.RGBDataset.createGreenDataset(int)</a>
+<div class="block"><i>Use <code>RGBDataset#createGreenDataset(Class)</code></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(double,%20double,%20double,%20int)">org.eclipse.january.dataset.RGBDataset.createGreyDataset(double, double, double, int)</a>
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class, double, double, double)</code></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(int)">org.eclipse.january.dataset.RGBDataset.createGreyDataset(int)</a>
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class)</code></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(double,%20double,%20int,%20int)">org.eclipse.january.dataset.DatasetFactory.createLinearSpace(double, double, int, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)"><code>DatasetFactory.createLinearSpace(Class, double, double, int)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(double,%20double,%20int,%20double,%20int)">org.eclipse.january.dataset.DatasetFactory.createLogSpace(double, double, int, double, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)"><code>DatasetFactory.createLogSpace(Class, double, double, int, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double,%20int)">org.eclipse.january.dataset.DatasetFactory.createRange(double, double, double, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20int)">org.eclipse.january.dataset.DatasetFactory.createRange(double, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)"><code>DatasetFactory.createRange(Class, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20double,%20double,%20int)">org.eclipse.january.dataset.DatasetFactory.createRange(int, double, double, double, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20int)">org.eclipse.january.dataset.DatasetFactory.createRange(int, double, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/RGBDataset.html#createRedDataset(int)">org.eclipse.january.dataset.RGBDataset.createRedDataset(int)</a>
+<div class="block"><i>Use <code>RGBDataset#createRedDataset(Class)</code></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getBilinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">org.eclipse.january.dataset.Maths.getBilinear(double[], CompoundDataset, double, double)</a>
+<div class="block"><i>Use
+             <a href="org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)"><code>Maths.interpolate(double[], CompoundDataset, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20double,%20double)">org.eclipse.january.dataset.Maths.getBilinear(IDataset, double, double)</a>
+<div class="block"><i>Use <a href="org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>Maths.interpolate(Dataset, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20double,%20double)">org.eclipse.january.dataset.Maths.getBilinear(IDataset, IDataset, double, double)</a>
+<div class="block"><i>Use <a href="org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>Maths.interpolate(Dataset, Dataset, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getLinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">org.eclipse.january.dataset.Maths.getLinear(double[], CompoundDataset, double)</a>
+<div class="block"><i>Use <a href="org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)"><code>Maths.interpolate(double[], CompoundDataset, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/Maths.html#getLinear(org.eclipse.january.dataset.IDataset,%20double)">org.eclipse.january.dataset.Maths.getLinear(IDataset, double)</a>
+<div class="block"><i>Use <a href="org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)"><code>Maths.interpolate(Dataset, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">org.eclipse.january.dataset.LazyDatasetBase.getMetadata()</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">org.eclipse.january.dataset.IMetadataProvider.getMetadata()</a>
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/IDataset.html#getMetadata()">org.eclipse.january.dataset.IDataset.getMetadata()</a>
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20int)">org.eclipse.january.dataset.DatasetFactory.ones(Dataset, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones(int[],%20int)">org.eclipse.january.dataset.DatasetFactory.ones(int[], int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#ones(int[], Class)</code></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20int[],%20int)">org.eclipse.january.dataset.DatasetFactory.ones(int, int[], int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)"><code>DatasetFactory.ones(Class, int...)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimum(T,%20T,%20boolean...)">org.eclipse.january.metadata.StatisticsMetadata.setMaximumMinimum(T, T, boolean...)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20int)">org.eclipse.january.dataset.DatasetFactory.zeros(Dataset, int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)"><code>DatasetFactory.zeros(Dataset, Class)</code></a></i></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros(int[],%20int)">org.eclipse.january.dataset.DatasetFactory.zeros(int[], int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)"><code>DatasetFactory.zeros(Class, int...)</code></a></i></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20int[],%20int)">org.eclipse.january.dataset.DatasetFactory.zeros(int, int[], int)</a>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)"><code>DatasetFactory.zeros(int, Class, int...)</code></a></i></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/help-doc.html b/apidocs/2.1.1/help-doc.html
new file mode 100644
index 0000000..fc22412
--- /dev/null
+++ b/apidocs/2.1.1/help-doc.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="API Help (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<em>This help file applies to API documentation generated using the standard doclet.</em></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/index-all.html b/apidocs/2.1.1/index-all.html
new file mode 100644
index 0000000..388fcef
--- /dev/null
+++ b/apidocs/2.1.1/index-all.html
@@ -0,0 +1,9487 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="./stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Index (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_I_">I</a>&nbsp;<a href="#_K_">K</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_Q_">Q</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a href="#_W_">W</a>&nbsp;<a href="#_Z_">Z</a>&nbsp;<a name="_A_">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#abs(java.lang.Object)">abs(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">abs - absolute value of each element</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#abs(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">abs(Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">abs - absolute value of each element</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AbstractCompoundDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#AbstractCompoundDataset()">AbstractCompoundDataset()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>
+<div class="block">Constructor required for serialisation.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AbstractDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#AbstractDataset()">AbstractDataset()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Constructor required for serialisation.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#add(java.util.Collection,%20boolean)">add(Collection&lt;IDataset&gt;, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Adds all sets passed in together
+ 
+ The first IDataset must cast to Dataset
+ 
+ For memory efficiency sake if add(...) is called with a set of size one,
+ no clone is done, the original object is returned directly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#addAxis(int,%20org.eclipse.january.dataset.ILazyDataset)">addAxis(int, ILazyDataset)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>
+<div class="block">Add axis data to given dimension.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#addAxis(int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">addAxis(int, ILazyDataset, int...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#addDataInfo(java.lang.String,%20int...)">addDataInfo(String, int...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Add name and shape of a dataset to metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#addDataInfo(java.lang.String,%20int...)">addDataInfo(String, int...)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataListenerDelegate.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener(IDataListener)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener(IDataListener)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Add a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener(IDataListener)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata(MetadataType)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Add metadata to the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata(MetadataType)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#addNames(java.util.Collection)">addNames(Collection&lt;String&gt;)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#addNames(java.util.Collection)">addNames(Collection&lt;String&gt;)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#aDouble">aDouble</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>
+<div class="block">Current value in first dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aDouble">aDouble</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>
+<div class="block">Current value in array</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AggregateDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#AggregateDataset(boolean,%20org.eclipse.january.dataset.ILazyDataset...)">AggregateDataset(boolean, ILazyDataset...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>
+<div class="block">Create an aggregate dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">Index in first dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aIndex">aIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>
+<div class="block">Index in array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#all()">all()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#all(int)">all(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#all()">all()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Test if all items are true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#all(int)">all(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#allCloseTo(java.lang.Object,%20java.lang.Object,%20double,%20double)">allCloseTo(Object, Object, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is almost equal to b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#allTrue(java.lang.Object)">allTrue(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#allTrue(org.eclipse.january.dataset.IDataset,%20int)">allTrue(IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20double,%20double)">almostEqualTo(Object, Object, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20double,%20double)">almostEqualTo(Object, Object, BooleanDataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#aLong">aLong</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>
+<div class="block">Current value in first dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aLong">aLong</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>
+<div class="block">Current value in array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#angle(java.lang.Object)">angle(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean)">angle(Object, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">angle(Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean,%20org.eclipse.january.dataset.Dataset)">angle(Object, boolean, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#any()">any()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#any(int)">any(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#any()">any()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Test if any items are true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#any(int)">any(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#anyTrue(java.lang.Object)">anyTrue(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#anyTrue(org.eclipse.january.dataset.IDataset,%20int)">anyTrue(IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#append(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20int)">append(IDataset, IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Append copy of dataset with another dataset along n-th axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#appendSliceToString(java.lang.StringBuilder,%20int,%20int,%20int,%20int)">appendSliceToString(StringBuilder, int, int, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns a String representation of the Slice comparable to the python
+ representation.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object)">arctan2(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arctan2(Object, Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#areShapesBroadcastCompatible(int[],%20int[])">areShapesBroadcastCompatible(int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Check if shapes are broadcast compatible</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible(int[],%20int[])">areShapesCompatible(int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Check if shapes are compatible, ignoring extra axes of length 1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible(int[],%20int[],%20int)">areShapesCompatible(int[], int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Check if shapes are compatible but skip axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Find indices of maximum values along given axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Find indices of minimum values along given axis</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes ARPES-related information</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of 32-bit floating points</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of 64-bit floating points</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of signed 16-bit integers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of signed 32-bit integers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of signed 64-bit integers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of signed 8-bit integers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get a non-compound dataset version</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#averageDeviation(org.eclipse.january.dataset.Dataset)">averageDeviation(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes any axis information associated with a dataset.</div>
+</dd>
+</dl>
+<a name="_B_">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#base">base</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#base">base</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#base">base</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">Current value in second dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#begSlice">begSlice</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">BinaryOperation</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Interface to represent a binary operation for implementations over different output domains</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">BinaryOperation.Stub</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#BinaryOperation.Stub()">BinaryOperation.Stub()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">Index in second dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">Current value in second dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Boolean</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanBroadcastIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html#BooleanBroadcastIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanBroadcastIterator(boolean, Dataset, Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanContiguousIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html#BooleanContiguousIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanContiguousIterator(boolean, Dataset, Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanDatasetBase</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="./org/eclipse/january/dataset/IndexIterator.html#hasNext()"><code>IndexIterator.hasNext()</code></a> returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BooleanIterator(boolean, Dataset, Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanNullIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BooleanNullIterator(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanNullIterator(Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20boolean)">BooleanNullIterator(Dataset, Dataset, boolean, boolean, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#booleanOperate(long)">booleanOperate(long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#booleanOperate(long,%20long)">booleanOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.html#booleanOperate(long)">booleanOperate(long)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#booleanOperate(long)">booleanOperate(long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#br">br</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.html#bracketIfNecessary(java.lang.String)">bracketIfNecessary(String)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dt>
+<dd>
+<div class="block">This function returns the name of the dataset, bracketed if it already
+ includes some mathematical symbol</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#BroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastIterator(Dataset, Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastIteratorBase</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Base class for all broadcast iterators.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#BroadcastIteratorBase(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastIteratorBase(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastPairIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastPairIterator.html#BroadcastPairIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BroadcastPairIterator(Dataset, Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastSelfIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html#BroadcastSelfIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastSelfIterator(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapes(int[]...)">broadcastShapes(int[]...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Take in shapes and broadcast them to same rank</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapesToMax(int[],%20int[]...)">broadcastShapesToMax(int[], int[]...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Take in shapes and broadcast them to maximum shape</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastSingleIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html#BroadcastSingleIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastSingleIterator(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastUtils</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#BroadcastUtils()">BroadcastUtils()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ByteDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</dd>
+</dl>
+<a name="_C_">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition(org.eclipse.january.dataset.Dataset)">calcCholeskyDecomposition(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate Cholesky decomposition A = L L^T</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcConditionNumber(org.eclipse.january.dataset.Dataset)">calcConditionNumber(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate condition number of matrix by singular value decomposition method</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">calcConjugateGradient(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20double)">calcConjugateGradient(Dataset, Dataset, int, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < delta ||v||</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcDeterminant(org.eclipse.january.dataset.Dataset)">calcDeterminant(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition(org.eclipse.january.dataset.Dataset)">calcEigenDecomposition(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate eigen-decomposition A = V D V^T</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues(org.eclipse.january.dataset.Dataset)">calcEigenvalues(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions(java.util.List,%20int[],%20int...)">calcIndexesFromPositions(List&lt;? extends Dataset&gt;, int[], int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Calculate indexes in given shape from datasets of position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcInverse(org.eclipse.january.dataset.Dataset)">calcInverse(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate inverse of square dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#calcLongSize(int[])">calcLongSize(int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Calculate total number of items in given shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition(org.eclipse.january.dataset.Dataset)">calcLUDecomposition(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate LU decomposition A = P^-1 L U</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcMatrixRank(org.eclipse.january.dataset.Dataset)">calcMatrixRank(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate matrix rank by singular value decomposition method</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes(org.eclipse.january.dataset.Dataset,%20int[])">calcPositionsFromIndexes(Dataset, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Calculate positions in given shape from a dataset of 1-D indexes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse(org.eclipse.january.dataset.Dataset)">calcPseudoInverse(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate (Moore-Penrose) pseudo-inverse</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition(org.eclipse.january.dataset.Dataset)">calcQRDecomposition(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate QR decomposition A = Q R</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#calcShapes(boolean,%20org.eclipse.january.dataset.ILazyDataset...)">calcShapes(boolean, ILazyDataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>
+<div class="block">Calculate (possibly extended) shapes from given datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition(org.eclipse.january.dataset.Dataset)">calcSingularValueDecomposition(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate singular value decomposition A = U S V^T</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValues(org.eclipse.january.dataset.Dataset)">calcSingularValues(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#calcSize(int[])">calcSize(int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Calculate total number of items in given shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps(double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice(org.eclipse.january.dataset.SliceND)">calcTrueSlice(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#calculateBroadcastShapes(int[],%20int,%20int...)">calculateBroadcastShapes(int[], int, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Calculate shapes for broadcasting</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast(boolean, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast(Class&lt;T&gt;)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast(boolean, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#cast(boolean,%20int,%20int)">cast(boolean, int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#cast(int)">cast(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#cast(int)">cast(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast(Class&lt;T&gt;)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast(boolean, int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20int)">cast(IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#cast(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">cast(Class&lt;T&gt;, IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20boolean,%20int,%20int)">cast(IDataset, boolean, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.Dataset[],%20int)">cast(Dataset[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#centralDifference(org.eclipse.january.dataset.Dataset,%20int)">centralDifference(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Discrete difference of dataset along axis using finite central difference</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#centroid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">centroid(Dataset, Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Get the centroid value of a dataset, this function works out the centroid in every direction</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetChangeChecker.html#check()">check()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></dt>
+<dd>
+<div class="block">Check for any change.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeChangeChecker.html#check()">check()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#checkAxis(int,%20int)">checkAxis(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility(ILazyDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility(ILazyDataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.ILazyDataset)">checkCompatibility(ILazyDataset, ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">This function takes a dataset and checks its shape against another dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#checker">checker</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes(int[], int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">Check permutation axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#choose(org.eclipse.january.dataset.IntegerDataset,%20java.lang.Object[],%20boolean,%20boolean)">choose(IntegerDataset, Object[], boolean, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Choose content from choices where condition is true, otherwise use default.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Index in choice dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataListenerDelegate.html#clear()">clear()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata(Class&lt;? extends MetadataType&gt;)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Remove metadata of given class</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata(Class&lt;? extends MetadataType&gt;)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Clone dataset, making new copy of data</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Clone dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Creates a deep copy of the Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Creates a deep copy of the SliceND.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#clone()">clone()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/IDataAnalysisObject.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#clone()">clone()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>
+<div class="block">Make a deep copy of metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Copy of metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#clone()">clone()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/MetadataType.html#clone()">clone()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></dt>
+<dd>
+<div class="block">Make a deep copy of metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#coerce(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">coerce(Dataset, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a copy that has been coerced to an appropriate dataset type
+ depending on the input object's class</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">CollectionStats</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Statistics of data set lists.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CollectionStats.html#CollectionStats()">CollectionStats()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Comparisons</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Comparison and logical methods</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#Comparisons()">Comparisons()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Comparisons.Monotonicity</span></a> - Enum in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Enumeration of monotonicity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Complex floating point (same as 64-bit floating point)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">128-bit complex floating point (real and imaginary parts are 64-bit floats)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">64-bit complex floating point (real and imaginary parts are 32-bit floats)</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ComplexDoubleDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ComplexFloatDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></dt>
+<dd>
+<div class="block">override this</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Exponentiation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#complexOperate(double[],%20double,%20double)">complexOperate(double[], double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate(double[], double, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.html#complexOperate(double[],%20double,%20double)">complexOperate(double[], double, double)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)">complexOperate(double[], double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dt>
+<dd>
+<div class="block">Override this</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundByteDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundDoubleDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundFloatDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundIntegerDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundLongDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundShortDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20int[],%20int)">compoundZeros(int, int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#compoundZeros(int, Class, int)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20java.lang.Class,%20int...)">compoundZeros(int, Class&lt;T&gt;, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#concatenate(org.eclipse.january.dataset.IDataset[],%20int)">concatenate(IDataset[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Concatenate the set of datasets along given axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object)">conjugate(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">conjugate(Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#connect()">connect()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">Same as calling connect(500, TimeUnit.MILLISECOND)
+ 
+ Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#connect(long,%20java.util.concurrent.TimeUnit)">connect(long, TimeUnit)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#containsInfs()">containsInfs()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#containsNans()">containsNans()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over contiguous datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator(int)">ContiguousIterator(int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator(int,%20int)">ContiguousIterator(int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator(int,%20int,%20int)">ContiguousIterator(int, int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousIteratorWithPosition</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over contiguous datasets and keep track of position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition(int[],%20int)">ContiguousIteratorWithPosition(int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of a dataset that are
+ within the dimensions</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition(int[],%20int,%20int)">ContiguousIteratorWithPosition(int[], int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of a dataset that are
+ within the dimensions</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousPairIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousPairIterator.html#ContiguousPairIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">ContiguousPairIterator(Dataset, Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousSingleIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html#ContiguousSingleIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">ContiguousSingleIterator(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#convertAndBroadcast(java.lang.Object...)">convertAndBroadcast(Object...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Converts and broadcast all objects as datasets of same shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#convertFromSlice(org.eclipse.january.dataset.Slice[],%20int[],%20int[],%20int[],%20int[])">convertFromSlice(Slice[], int[], int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#convertFromString(java.lang.String)">convertFromString(String)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Converts string in a Slice array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#convertToDataset(org.eclipse.january.dataset.IDataset)">convertToDataset(IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Convert (if necessary) a dataset obeying the interface to our implementation</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#convertToSlice(int[],%20int[],%20int[])">convertToSlice(int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#convertToSlice()">convertToSlice()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy(Class&lt;T&gt;)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#copy(int)">copy(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Copy and cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy(Class&lt;T&gt;)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Copy and cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#copy(org.eclipse.january.dataset.IDataset,%20int)">copy(IDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Copy and cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#copy(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">copy(Class&lt;T&gt;, IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Copy and cast a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Copy content from axes in given position to array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes(int[], boolean[], Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView(Dataset, AbstractDataset, boolean, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Copy fields from original to view</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#count(boolean...)">count(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset)">covariance(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">See <a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance(Dataset, boolean, boolean, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">See <a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">covariance(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">See <a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance(Dataset, Dataset, boolean, boolean, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate the covariance matrix (array) of a concatenated with b.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#createArray(int)">createArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#createArray(int)">createArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#createArray(int)">createArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#createArray(int)">createArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#createArray(int)">createArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#createArray(int)">createArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#createArray(int)">createArray(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.html#createBinaryOperationName(java.lang.String,%20java.lang.String,%20java.lang.String)">createBinaryOperationName(String, String, String)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dt>
+<dd>
+<div class="block">Create a string for a binary operator and its operands</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(T)">createBlueDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Extract blue colour channel</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(int)">createBlueDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>RGBDataset#createBlueDataset(Class)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides(org.eclipse.january.dataset.Dataset,%20int[])">createBroadcastStrides(Dataset, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides(int,%20int[],%20int[],%20int[])">createBroadcastStrides(int, int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(int,%20java.lang.Object,%20java.lang.Object)">createComplexDataset(int, Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)"><code>DatasetFactory.createComplexDataset(Class, Object, Object)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)">createComplexDataset(Class&lt;T&gt;, Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create complex dataset of given class from real and imaginary parts</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Object...)">createCompoundDataset(Object...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create compound dataset of given type from given parts</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(int,%20java.lang.Object...)">createCompoundDataset(int, Object...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)"><code>DatasetFactory.createCompoundDataset(Class, Object...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)">createCompoundDataset(Class&lt;T&gt;, Object...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create compound dataset of given class from given parts</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset...)">createCompoundDataset(Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a compound dataset from given datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(int,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset(int, Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a compound dataset from given datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(java.lang.Class,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset(Class&lt;T&gt;, Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a compound dataset from given datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset,%20int)">createCompoundDataset(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a compound dataset from given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetFromLastAxis(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a compound dataset by using last axis as elements of an item</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset,%20boolean)">createDatasetFromCompoundDataset(CompoundDataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a dataset from a compound dataset by using elements of an item as last axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset)">createFromCompoundDataset(CompoundDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a RGB dataset from a compound dataset (no normalisation performed)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createFromHSL(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSL(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a RGB dataset from hue, saturation and lightness dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createFromHSV(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSV(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a RGB dataset from hue, saturation and value dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.util.List)">createFromList(List&lt;?&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset of appropriate type from list</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromList(int,%20java.util.List)">createFromList(int, List&lt;?&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)"><code>DatasetFactory.createFromList(Class, List&lt;?&gt;)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)">createFromList(Class&lt;T&gt;, List&lt;?&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset of given class from list</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Object)">createFromObject(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Object,%20int...)">createFromObject(Object, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(boolean,%20java.lang.Object)">createFromObject(boolean, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object)">createFromObject(int, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#createFromObject(Class, Object, int)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object,%20int...)">createFromObject(int, Object, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20int,%20java.lang.Object,%20int...)">createFromObject(int, int, Object, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)"><code>DatasetFactory.createFromObject(int, Class, Object, int...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object)">createFromObject(Class&lt;T&gt;, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a dataset from object</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)">createFromObject(Class&lt;T&gt;, Object, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a dataset from object</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)">createFromObject(int, Class&lt;T&gt;, Object, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a compound dataset from object</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createFromObject(java.lang.Object)">createFromObject(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a RGB dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable(Serializable, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.html#createFunctionName(java.lang.String,%20java.lang.String...)">createFunctionName(String, String...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dt>
+<dd>
+<div class="block">Create a string for a function and its arguments</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(T)">createGreenDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Extract green colour channel</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(int)">createGreenDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>RGBDataset#createGreenDataset(Class)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(T)">createGreyDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(T,%20double,%20double,%20double)">createGreyDataset(T, double, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(int)">createGreyDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(double,%20double,%20double,%20int)">createGreyDataset(double, double, double, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class, double, double, double)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator(boolean, Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator(boolean, Dataset, Dataset, Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator(Dataset, Dataset, Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#createJavaArray(org.eclipse.january.dataset.Dataset)">createJavaArray(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create Java array (of arrays) from dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset based on in-memory data (handy for testing)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset,%20int[])">createLazyDataset(Dataset, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(double,%20double,%20int,%20int)">createLinearSpace(double, double, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)"><code>DatasetFactory.createLinearSpace(Class, double, double, int)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)">createLinearSpace(Class&lt;T&gt;, double, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a 1D dataset of linearly spaced values in closed interval</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(double,%20double,%20int,%20double,%20int)">createLogSpace(double, double, int, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)"><code>DatasetFactory.createLogSpace(Class, double, double, int, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)">createLogSpace(Class&lt;T&gt;, double, double, int, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create a 1D dataset of logarithmically spaced values in closed interval.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/MetadataFactory.html#createMetadata(java.lang.Class,%20java.lang.Object...)">createMetadata(Class&lt;T&gt;, Object...)</a></span> - Static method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata">MetadataFactory</a></dt>
+<dd>
+<div class="block">Create a metadata object of given class with given arguments</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(double)">createRange(double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double)">createRange(double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20int)">createRange(double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)"><code>DatasetFactory.createRange(Class, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double,%20int)">createRange(double, double, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20int)">createRange(int, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20double,%20double,%20int)">createRange(int, double, double, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)">createRange(Class&lt;T&gt;, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)">createRange(Class&lt;T&gt;, double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20java.lang.Class,%20double)">createRange(int, Class&lt;T&gt;, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20java.lang.Class,%20double,%20double,%20double)">createRange(int, Class&lt;T&gt;, double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createRedDataset(T)">createRedDataset(T)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Extract red colour channel</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#createRedDataset(int)">createRedDataset(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>RGBDataset#createRedDataset(Class)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IRemoteData.html#createRemoteDataset(java.lang.String)">createRemoteDataset(String)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">IRemoteData</a></dt>
+<dd>
+<div class="block">Create a remote dataset looking at the dataset path named.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#createSlice(int[],%20int[],%20int[])">createSlice(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#createSlice(int[],%20int[],%20int[])">createSlice(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[])">createSlice(ILazyDataset, int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Creats SliceND from dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[],%20int[])">createSlice(ILazyDataset, int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Creating SliceND from dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides(Dataset, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Create a stride array from dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides(int, int[], int[], int, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Create a stride array from dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides(SliceND, Dataset, int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Create a stride array from slice information and a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides(SliceND, int, int[], int[], int, int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Create a stride array from slice and dataset information</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#createString(int[],%20int[],%20int[],%20int[])">createString(int[], int[], int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Creates a string representing the slice taken from given shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#createString(org.eclipse.january.dataset.Slice...)">createString(Slice...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Creates a string representation of slices.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20double)">crossings(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find linearly-interpolated crossing points where the given dataset crosses the given value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double)">crossings(Dataset, Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find x values of all the crossing points of the dataset with the given y value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)">crossings(Dataset, Dataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Function that uses the crossings function but prunes the result, so that multiple crossings within a
+ certain proportion of the overall range of the x values</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">crossProduct(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate the cross product of two datasets.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">crossProduct(Dataset, Dataset, int, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate the cross product of two datasets.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeProduct(Dataset, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeProduct(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeSum(Dataset, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeSum(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_D_">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#data">data</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataListener.html#dataChangePerformed(org.eclipse.january.dataset.DataEvent)">dataChangePerformed(DataEvent)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a></dt>
+<dd>
+<div class="block">Called when data changes value/shape.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">DataEvent</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Event fired to diseminate information about a dataset changing.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#DataEvent()">DataEvent()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#DataEvent(java.lang.String,%20int[])">DataEvent(String, int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>
+<div class="block">Creates an event to notify that this data has changed.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">DataListenerDelegate</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class used by DynamicDataset to delegate</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataListenerDelegate.html#DataListenerDelegate()">DataListenerDelegate()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</dd>
+<dt><a href="./org/eclipse/january/DatasetException.html" title="class in org.eclipse.january"><span class="strong">DatasetException</span></a> - Exception in <a href="./org/eclipse/january/package-summary.html">org.eclipse.january</a></dt>
+<dd>
+<div class="block">Exception class associated with datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/DatasetException.html#DatasetException()">DatasetException()</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/DatasetException.html#DatasetException(java.lang.String)">DatasetException(String)</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/DatasetException.html#DatasetException(java.lang.Throwable)">DatasetException(Throwable)</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/DatasetException.html#DatasetException(java.lang.String,%20java.lang.Throwable)">DatasetException(String, Throwable)</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">DatasetFactory</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#DatasetFactory()">DatasetFactory()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">DatasetUtils</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Utilities for manipulating datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#DatasetUtils()">DatasetUtils()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#DATE">DATE</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Date</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">DateDatasetImpl</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#decode(java.lang.String)">decode(String)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>
+<div class="block">Decodes from String for instance {"name" : "Tests", "shape" : [1024, 1024], "filepath" : "C:/tmp/Fred.txt"}</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#derivative(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int)">derivative(Dataset, Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Calculates the derivative of a line described by two datasets (x,y) given
+ a spread of n either side of the point</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#diag(T,%20int)">diag(T, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Create a (off-)diagonal matrix from items in dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#difference(org.eclipse.january.dataset.Dataset,%20int,%20int)">difference(Dataset, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Discrete difference of dataset along axis using finite difference</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Dirtiable</span></a> - Annotation Type in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This is an annotation for any metadata field that should be set to a dirty state.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">Dirty metadata that are annotated by @Dirtiable.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#disconnect()">disconnect()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">Stops listening to the dataset changing and disconnects from the server.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#dotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">dotProduct(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate the dot product of two datasets.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">DoubleDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Exponentiation.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#doubleOperate(double)">doubleOperate(double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#doubleOperate(double,%20double)">doubleOperate(double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.html#doubleOperate(double)">doubleOperate(double)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#doubleOperate(double)">doubleOperate(double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#dtype">dtype</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">DTypeUtils</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#DTypeUtils()">DTypeUtils()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">DynamicConnectionInfo</span></a> - Class in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata is set by a remote dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#DynamicConnectionInfo()">DynamicConnectionInfo()</a></span> - Constructor for class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">DynamicMetadataUtils</span></a> - Class in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicMetadataUtils.html#DynamicMetadataUtils()">DynamicMetadataUtils()</a></span> - Constructor for class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">DynamicMetadataUtils</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_E_">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#encode()">encode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>
+<div class="block">Encodes event to string</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object)">equalTo(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">equalTo(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes any error associated with a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#eventDelegate">eventDelegate</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#exponential(double,%20int...)">exponential(double, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#extract(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset)">extract(IDataset, IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Extract values where condition is non-zero.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#eye(int,%20int,%20int,%20int)">eye(int, int, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_F_">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Fill dataset with given object</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#fill(java.lang.Object)">fill(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData(Object, int, int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Fill dataset from object at depth dimension</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Populate another dataset with part of current dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset(Dataset, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findFirstOccurrences(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find first occurrences in one dataset of values given in another sorted dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findIndexEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexEqualTo(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find absolute index of first value in dataset that is equal to given number</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findIndexesForValues(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find indexes in sorted dataset of values for each value in other dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThan(org.eclipse.january.dataset.Dataset,%20double)">findIndexGreaterThan(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find absolute index of first value in dataset that is greater than given number</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThanOrEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexGreaterThanOrEqualTo(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find absolute index of first value in dataset that is greater than or equal to given number</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThan(org.eclipse.january.dataset.Dataset,%20double)">findIndexLessThan(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find absolute index of first value in dataset that is less than given number</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThanOrEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexLessThanOrEqualTo(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Find absolute index of first value in dataset that is less than or equal to given number</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces(Class&lt;? extends MetadataType&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">Find first sub-interface of (or class that directly implements) MetadataType</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#findMonotonicity(java.lang.Object)">findMonotonicity(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Find monotonicity.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataListenerDelegate.html#fire(org.eclipse.january.dataset.DataEvent)">fire(DataEvent)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Alert any registered listeners</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#fireDataListeners()">fireDataListeners()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#flatten()">flatten()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#flatten()">flatten()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Flatten shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#flip()">flip()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#flip(int)">flip(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#flip()">flip()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#flipLeftRight(T)">flipLeftRight(T)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Flip items in left/right direction, column-wise, or along second axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#flipUpDown(T)">flipUpDown(T)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Flip items in up/down direction, row-wise, or along first axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Floating point (same as 64-bit floating point)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">32-bit floating point</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">64-bit floating point</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">FloatDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object)">floorDivide(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorDivide(Object, Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object)">floorRemainder(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorRemainder(Object, Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#fromDoublesToBiggestPrimitives(double[],%20int)">fromDoublesToBiggestPrimitives(double[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#fromDoubleToBiggestNumber(double,%20int)">fromDoubleToBiggestNumber(double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_G_">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#get()">get()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#get(int)">get(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#get(int,%20int)">get(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#get(int...)">get(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This method calculates the index in the data array that corresponds to
+ the given n-dimensional position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape(int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape(int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape(int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getAbs(int,%20byte[])">getAbs(int, byte[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs(int,%20double[])">getAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs(int,%20float[])">getAbs(int, float[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs(int,%20int[])">getAbs(int, int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getAbs(int,%20long[])">getAbs(int, long[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getAbs(int,%20short[])">getAbs(int, short[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Get values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getAbs(int)">getAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getAnalyserAngles()">getAnalyserAngles()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getAngleAxisGlobalOffset()">getAngleAxisGlobalOffset()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getArgMaximum(int,%20boolean...)">getArgMaximum(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getArgMinimum(int,%20boolean...)">getArgMinimum(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#getAxes()">getAxes()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>
+<div class="block">Get axis datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#getAxis(int)">getAxis(int)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>
+<div class="block">Get all axis datasets for the given dimension</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getAzimuthalAngles()">getAzimuthalAngles()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getBestDType(int,%20int)">getBestDType(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Find dataset type that best fits given types The best type takes into account complex and array datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getBestFloatDType(int)">getBestFloatDType(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Find floating point dataset type that best fits given types.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getBestFloatDType(java.lang.Class)">getBestFloatDType(Class&lt;? extends Object&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Find floating point dataset type that best fits given class The best type takes into account complex and array
+ datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20double,%20double)">getBilinear(IDataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>Maths.interpolate(Dataset, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20double,%20double)">getBilinear(IDataset, IDataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>Maths.interpolate(Dataset, Dataset, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#getBilinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">getBilinear(double[], CompoundDataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use
+             <a href="./org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)"><code>Maths.interpolate(double[], CompoundDataset, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getBindingEnergies()">getBindingEnergies()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getBlue()">getBlue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getBlue(int)">getBlue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getBlue(int,%20int)">getBlue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getBlue(int...)">getBlue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getBlueAbs(int)">getBlueAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Get a blue value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getBlueView()">getBlueView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a boolean.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a boolean.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a boolean.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getBoolean()">getBoolean()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int)">getBoolean(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int,%20int)">getBoolean(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int...)">getBoolean(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator(Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator(Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator(Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator(Dataset, boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getBroadcastView(int...)">getBroadcastView(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getBufferLength()">getBufferLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex(IntegerDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex(IntegerDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex(IntegerDataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex(IntegerDataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean(Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean(Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean(Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean(Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes(Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes(Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes(Object...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes(Object...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getByte()">getByte()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given positionj as a byte.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getByte()">getByte()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getByte(int)">getByte(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getByte(int,%20int)">getByte(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getByte(int...)">getByte(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray()">getByteArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getByteArray()">getByteArray()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray()">getByteArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray()">getByteArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray()">getByteArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray()">getByteArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray()">getByteArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int)">getByteArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int,%20int)">getByteArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int...)">getByteArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#getChoice()">getChoice()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#getChunking()">getChunking()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Get chunking</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#getChunking()">getChunking()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex()">getComplex()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex(int)">getComplex(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex(int,%20int)">getComplex(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex(int...)">getComplex(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex()">getComplex()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex(int)">getComplex(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex(int,%20int)">getComplex(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex(int...)">getComplex(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplexAbs(int)">getComplexAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>
+<div class="block">Get complex value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getComplexAbs(int)">getComplexAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>
+<div class="block">Get complex value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RunningAverage.html#getCount()">getCount()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">RunningAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getCount(boolean...)">getCount(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getCount(int,%20boolean...)">getCount(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getCreation()">getCreation()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>
+<div class="block">This should be the timestamp of when the experiment or measurement took place which should
+ be recorded in the header of the file, if applicable</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getCreator()">getCreator()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RunningAverage.html#getCurrentAverage()">getCurrentAverage()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">RunningAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getCurrentSlice()">getCurrentSlice()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>
+<div class="block">Get current slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getData()">getData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">This is a typed version of <a href="./org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DimensionMetadata.html#getDataChunkDimensions()">getDataChunkDimensions()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DimensionMetadata.html#getDataDimensions()">getDataDimensions()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DimensionMetadata.html#getDataMaxDimensions()">getDataMaxDimensions()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getDataNames()">getDataNames()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getDataNames()">getDataNames()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#getDataset()">getDataset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset(IMonitor, SliceND)</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#getDatasetName()">getDatasetName()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">The dataset location/name in the file</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/OriginMetadata.html#getDatasetName()">getDatasetName()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getDataShapes()">getDataShapes()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Can be implemented to return shapes of dataset
+ (shape can be null if it is not known)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getDataShapes()">getDataShapes()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getDataSizes()">getDataSizes()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Can be implemented to return sizes of datasets
+ (size can be null if it is not known)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getDataSizes()">getDataSizes()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDataset.html#getDate()">getDate()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dt>
+<dd>
+<div class="block">Get the first date.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDataset.html#getDate(int)">getDate(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dt>
+<dd>
+<div class="block">Get the date at index i.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDataset.html#getDate(int,%20int)">getDate(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dt>
+<dd>
+<div class="block">Get the date at index i, j.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDataset.html#getDate(int...)">getDate(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dt>
+<dd>
+<div class="block">Get the date at given indices</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#getDate()">getDate()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#getDate(int)">getDate(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#getDate(int,%20int)">getDate(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#getDate(int...)">getDate(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDataset.html#getDateAbs(int)">getDateAbs(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dt>
+<dd>
+<div class="block">Get the date at the given absolute index.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#getDateAbs(int)">getDateAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a double.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a double.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a double.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getDouble()">getDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int)">getDouble(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int,%20int)">getDouble(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int...)">getDouble(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray(double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray(double[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray(double[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray(double[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[])">getDoubleArray(double[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get first item as a double array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray(double[], int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get an item as a double array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray(double[], int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get an item as a double array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray(double[], int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get an item as a double array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray()">getDoubleArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int)">getDoubleArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int,%20int)">getDoubleArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int...)">getDoubleArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get an item as a double array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#getDroppedCount()">getDroppedCount()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getDType()">getDType()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDType(java.lang.Class)">getDType(Class&lt;? extends Dataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDType(org.eclipse.january.dataset.ILazyDataset)">getDType(ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Get dataset type from given dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>
+<div class="block">Can return -1 for unknown</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getDType()">getDType()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass(java.lang.Class)">getDTypeFromClass(Class&lt;? extends Object&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Get dataset type from an element class</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass(java.lang.Class,%20int)">getDTypeFromClass(Class&lt;? extends Object&gt;, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Get dataset type from an element class</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromObject(java.lang.Object)">getDTypeFromObject(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">Get dataset type from an object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(org.eclipse.january.dataset.Dataset)">getDTypeName(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(org.eclipse.january.dataset.ILazyDataset)">getDTypeName(ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(int,%20int)">getDTypeName(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getElementalDType(int)">getElementalDType(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getElementClass()">getElementClass()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getElementClass(int)">getElementClass(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an element from given absolute index as a double.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an element from given absolute index as a long.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getElementLongAbs(int)">getElementLongAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getElements(int)">getElements(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">getElements(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getElements(int)">getElements(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getElements(int)">getElements(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getElements(int)">getElements(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getElements(int)">getElements(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getElements(int)">getElements(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getElementsPerItem()">getElementsPerItem()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getElementsPerItem(int)">getElementsPerItem(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getElementsPerItem()">getElementsPerItem()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>
+<div class="block">Can return -1 for unknown</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getElementsView(int)">getElementsView(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getEnd()">getEnd()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the last value inside of Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisGlobalOffset()">getEnergyAxisGlobalOffset()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisOffset()">getEnergyAxisOffset()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getError()">getError()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getError()">getError()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the error for the first item.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getError(int)">getError(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the error for given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the error for given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getError(int...)">getError(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Get the error for a given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ErrorMetadata.html#getError()">getError()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></dt>
+<dd>
+<div class="block">Get error dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the error values for given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the error values for given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Get the error values for a single point in the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getErrors()">getErrors()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getErrors()">getErrors()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get the errors, if any.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#getFieldOfView()">getFieldOfView()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getFileName()">getFileName()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getFileOwner()">getFileOwner()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#getFilePath()">getFilePath()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getFilePath()">getFilePath()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getFilePath()">getFilePath()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/OriginMetadata.html#getFilePath()">getFilePath()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getFileSize()">getFileSize()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#getFillValue()">getFillValue()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#getFillValue()">getFillValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata(Class&lt;T&gt;)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata(Class&lt;T&gt;)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html#getFirstShape()">getFirstShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastPairIterator.html#getFirstShape()">getFirstShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html#getFirstShape()">getFirstShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue()">getFirstValue()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int)">getFirstValue(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int,%20int)">getFirstValue(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int...)">getFirstValue(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#getFlat1DIndex(int[],%20int[])">getFlat1DIndex(int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Get flattened view index of given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a float.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a float.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a float.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getFloat()">getFloat()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int)">getFloat(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int,%20int)">getFloat(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int...)">getFloat(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray()">getFloatArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int)">getFloatArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int,%20int)">getFloatArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int...)">getFloatArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getFullPath()">getFullPath()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getGreen()">getGreen()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getGreen(int)">getGreen(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getGreen(int,%20int)">getGreen(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getGreen(int...)">getGreen(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getGreenAbs(int)">getGreenAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Get a green value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getGreenView()">getGreenView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getHash(int[])">getHash(int[])</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag()">getImag()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag(int)">getImag(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag(int,%20int)">getImag(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag(int...)">getImag(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getImag()">getImag()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getImag(int)">getImag(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getImag(int,%20int)">getImag(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getImag(int...)">getImag(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryPart()">getImaginaryPart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryPart()">getImaginaryPart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryView()">getImaginaryView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryView()">getImaginaryView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Generate an index dataset for current dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getInt()">getInt()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as an int.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as an int.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as an int.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getInt()">getInt()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getInt(int)">getInt(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getInt(int,%20int)">getInt(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getInt(int...)">getInt(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray()">getIntArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getIntArray()">getIntArray()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray()">getIntArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray()">getIntArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray()">getIntArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray()">getIntArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray()">getIntArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int)">getIntArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int,%20int)">getIntArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int...)">getIntArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getInternalMetadata()">getInternalMetadata()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>
+<div class="block">Internal use only</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getItemBytes(int)">getItemBytes(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getItemBytes(int,%20int)">getItemBytes(int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>
+<div class="block">Get an iterator that picks out the chosen element from all items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getKineticEnergies()">getKineticEnergies()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getLargestDType(int)">getLargestDType(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>
+<div class="block">The largest dataset type suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getLastModified()">getLastModified()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#getLength(java.lang.Object)">getLength(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getLength()">getLength()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the maximum value of the slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#getLinear(org.eclipse.january.dataset.IDataset,%20double)">getLinear(IDataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)"><code>Maths.interpolate(Dataset, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#getLinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">getLinear(double[], CompoundDataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <a href="./org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)"><code>Maths.interpolate(double[], CompoundDataset, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getLong()">getLong()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a long.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a long.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a long.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getLong()">getLong()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getLong(int)">getLong(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getLong(int,%20int)">getLong(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getLong(int...)">getLong(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray()">getLongArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getLongArray()">getLongArray()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray()">getLongArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray()">getLongArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray()">getLongArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray()">getLongArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray()">getLongArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int)">getLongArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int,%20int)">getLongArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int...)">getLongArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/MaskMetadata.html#getMask()">getMask()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a></dt>
+<dd>
+<div class="block">Get mask</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html#getMaskShape()">getMaskShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)">getMaximum(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(int,%20boolean...)">getMaximum(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMaximumPositions(boolean...)">getMaximumPositions(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength()</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#getMaxShape()">getMaxShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#getMaxShape()">getMaxShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of maximals shapes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength(org.eclipse.january.dataset.ILazyDataset,%20int)">getMaxSliceLength(ILazyDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>
+<div class="block">Gets the maximum size of a slice of a dataset in a given dimension
+ which should normally fit in memory.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMean(boolean...)">getMean(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMean(int,%20boolean...)">getMean(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata(Class&lt;T&gt;)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata(Class&lt;T&gt;)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/IMetaLoader.html#getMetadata()">getMetadata()</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io">IMetaLoader</a></dt>
+<dd>
+<div class="block">Returns an object containing some data about the data file
+ to be read in.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap(Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getMetaNames()">getMetaNames()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Returns a collection of metadata names</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getMetaNames()">getMetaNames()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getMetaValue(java.lang.String)">getMetaValue(String)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Returns string value or null if not implemented</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getMetaValue(java.lang.String)">getMetaValue(String)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum(boolean...)">getMinimum(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum(int,%20boolean...)">getMinimum(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getMinimumPositions(boolean...)">getMinimumPositions(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getName()">getName()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#getName()">getName()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/INameable.html#getName()">getName()</a></span> - Method in interface org.eclipse.january.<a href="./org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This method calculates the n-dimensional position in the dataset of
+ the given index in the data array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#getNDPositionFromShape(int,%20int[])">getNDPositionFromShape(int, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Get n-D position from given index</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getNumSteps()">getNumSteps()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the number of steps inside of the Slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getNumSteps(int,%20int)">getNumSteps(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the number of steps inside of the Slice from a point to an other
+ point minus 1 because this is an exclusive index</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getObject()">getObject()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as an object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as an object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as an object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getObject()">getObject()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getObject(int)">getObject(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getObject(int,%20int)">getObject(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getObject(int...)">getObject(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given absolute index as an object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getObjectAbs(int)">getObjectAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#getOmit()">getOmit()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getOmit()">getOmit()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getOmittedSlice()">getOmittedSlice()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>
+<div class="block">Get omitted part of source slice which never changes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#getOutput()">getOutput()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#getOutput()">getOutput()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getOutput()">getOutput()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getOutputSlice()">getOutputSlice()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>
+<div class="block">Get output or destination slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/OriginMetadata.html#getParent()">getParent()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getPassEnergy()">getPassEnergy()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IFileConnection.html#getPath()">getPath()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></dt>
+<dd>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getPhotoelectronMomentum()">getPhotoelectronMomentum()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getPhotonEnergy()">getPhotonEnergy()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getPolarAngles()">getPolarAngles()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousPairIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegersIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleItemIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns the current position of the iterator.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#getPos()">getPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getPosition(int)">getPosition(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the index of the n-th step inside of the slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal()">getReal()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal(int)">getReal(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal(int,%20int)">getReal(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal(int...)">getReal(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getReal()">getReal()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getReal(int)">getReal(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getReal(int,%20int)">getReal(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getReal(int...)">getReal(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealPart()">getRealPart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getRealPart()">getRealPart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealView()">getRealView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getRealView()">getRealView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#getReceivedCount()">getReceivedCount()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getRed()">getRed()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getRed(int)">getRed(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getRed(int,%20int)">getRed(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getRed(int...)">getRed(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getRedAbs(int)">getRedAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Get a red value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getRedView()">getRedView()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#getScaling()">getScaling()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#getScanCommand()">getScanCommand()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastPairIterator.html#getSecondShape()">getSecondShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html#getSecondShape()">getSecondShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegersIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns an array of the Slices shapes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of resulting shapes (this can change if the start, stop,
+ step arrays are changed).</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getShape()">getShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#getShapeFromObject(java.lang.Object)">getShapeFromObject(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Get shape from object (array or list supported)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets and null for null datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getShort()">getShort()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a short.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a short.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a short.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getShort()">getShort()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getShort(int)">getShort(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getShort(int,%20int)">getShort(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getShort(int...)">getShort(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray()">getShortArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getShortArray()">getShortArray()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray()">getShortArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray()">getShortArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray()">getShortArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray()">getShortArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray()">getShortArray()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int)">getShortArray(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int,%20int)">getShortArray(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int...)">getShortArray(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSize()">getSize()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSize()">getSize()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice(IMonitor, Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice(IMonitor, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice(IMonitor, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice(SliceIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/OriginMetadata.html#getSliceFromInput()">getSliceFromInput()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dt>
+<dd>
+<div class="block">The starting slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/OriginMetadata.html#getSliceInOutput()">getSliceInOutput()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dt>
+<dd>
+<div class="block">Current slice information.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes(int[], boolean[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes(int[], boolean[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get a slice iterator that is defined by a starting position and a set of axes to include</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Get a slice of the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView(int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView(Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView(SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#getSource()">getSource()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#getSourceShape()">getSourceShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of shapes of the source Dataset (this can change for
+ dynamic Datasets).</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getStart()">getStart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the starting index of the slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#getStart()">getStart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns an array of starts indexes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#getStart()">getStart()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of the starts values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getStep()">getStep()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the step of the slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#getStep()">getStep()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns an array of steps</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#getStep()">getStep()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of the steps values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#getStop()">getStop()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#getStop()">getStop()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns the stopping index of the slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#getStop()">getStop()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns an array of stops values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getString()">getString()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get first item as a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getString(int)">getString(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given position as a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getString(int...)">getString(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getString()">getString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getString(int)">getString(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getString(int,%20int)">getString(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getString(int...)">getString(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get an item from given absolute index as a string.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getStringAbs(int)">getStringAbs(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getSum(boolean...)">getSum(boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getSum(int,%20boolean...)">getSum(int, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getTemperature()">getTemperature()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getTiltAngles()">getTiltAngles()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#getTransposedView(int...)">getTransposedView(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IRemoteData.html#getTree()">getTree()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">IRemoteData</a></dt>
+<dd>
+<div class="block">Map of path to collection of attributes at that path.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Get unique items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems()">getUniqueItems()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/UnitMetadata.html#getUnit()">getUnit()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></dt>
+<dd>
+<div class="block">Get unit</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getUsedPos()">getUsedPos()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>
+<div class="block">Shortened position where axes are omitted</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#getUsedSlice()">getUsedSlice()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>
+<div class="block">Shortened slice where axes are omitted</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#getUserObjects()">getUserObjects()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#getUserObjects()">getUserObjects()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getVariance(boolean,%20boolean...)">getVariance(boolean, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#getVariance(int,%20boolean,%20boolean...)">getVariance(int, boolean, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#getView(boolean)">getView(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#getWorkFunction()">getWorkFunction()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#getXYMotorPosition()">getXYMotorPosition()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#gradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">gradient(Dataset, Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Calculate gradient (or partial derivatives) by central difference</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object)">greaterThan(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThan(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object)">greaterThanOrEqualTo(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThanOrEqualTo(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</dd>
+</dl>
+<a name="_H_">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataListenerDelegate.html#hasDataListeners()">hasDataListeners()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">If error information is set, returns true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#hashCode()">hashCode()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanNullIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastPairIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousPairIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegersIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleItemIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#hasNext()">hasNext()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#highMed(org.eclipse.january.dataset.Dataset)">highMed(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>
+<div class="block">Returns the himed</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object)">hypot(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">hypot(Object, Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_I_">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>
+<div class="block">OR</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place addition with object o</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#iadd(java.lang.Object)">iadd(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><span class="strong">IDataAnalysisObject</span></a> - Interface in <a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></dt>
+<dd>
+<div class="block">Used to mark data in the LoaderFactory so that the incorrect values are not stored in the cache.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataListener</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Listener for data changes.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetChangeChecker</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Interface for a dataset checker to detect change</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetConnector</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">A dataset connector contains a lazy dataset which exists in a remote
+ location.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place division with object o</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#idivide(java.lang.Object)">idivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicShape</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">This interface is intended for data sources that change shape dynamically.</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">IFileConnection</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#ifloor()">ifloor()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place floor</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#ifloor()">ifloor()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place floor division with object o</div>
+</dd>
+<dt><a href="./org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyAsyncSaver</span></a> - Interface in <a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></dt>
+<dd>
+<div class="block">Used by lazy writeable datasets to write slices to a file in an asynchronous manner</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</dd>
+<dt><a href="./org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyDynamicLoader</span></a> - Interface in <a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyLoader</span></a> - Interface in <a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></dt>
+<dd>
+<div class="block">Used by lazy datasets to read slices from a file</div>
+</dd>
+<dt><a href="./org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazySaver</span></a> - Interface in <a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></dt>
+<dd>
+<div class="block">Used by lazy writeable datasets to write slices to a file</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">IMetadataProvider</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Interface which acts to provide metadata from an object</div>
+</dd>
+<dt><a href="./org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="strong">IMetaLoader</span></a> - Interface in <a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></dt>
+<dd>
+<div class="block">Interface used to mark a loader as being available to load and return
+ metadata without loading the entire file into memory.</div>
+</dd>
+<dt><a href="./org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">IMonitor</span></a> - Interface in <a href="./org/eclipse/january/package-summary.html">org.eclipse.january</a></dt>
+<dd>
+<div class="block">Interface to monitoring loading of files, which may take a while.</div>
+</dd>
+<dt><a href="./org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">IMonitor.Stub</span></a> - Class in <a href="./org/eclipse/january/package-summary.html">org.eclipse.january</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.Stub.html#IMonitor.Stub()">IMonitor.Stub()</a></span> - Constructor for class org.eclipse.january.<a href="./org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>
+<div class="block">AND</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place multiplication with object o</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#imultiply(java.lang.Object)">imultiply(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">INameable</span></a> - Interface in <a href="./org/eclipse/january/package-summary.html">org.eclipse.january</a></dt>
+<dd>
+<div class="block">Simple interface to provide a data object with a name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IndexIterator.html#index">index</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></dt>
+<dd>
+<div class="block">Index in array</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IndexIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to provide iteration through whole data array that backs a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IndexIterator.html#IndexIterator()">IndexIterator()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#indexSort(org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">indexSort(Dataset, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Indirectly sort along given axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#indices(int...)">indices(int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Generate an index dataset for given dataset where sub-datasets contain index values</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazySaver.html#initialize()">initialize()</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></dt>
+<dd>
+<div class="block">Initialize dataset in file</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ARPESMetadata.html#initialize()">initialize()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></dt>
+<dd>
+<div class="block">Initialize</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#initialize(int)">initialize(int)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DimensionMetadata.html#initialize(int[],%20int[],%20int[])">initialize(int[], int[], int[])</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></dt>
+<dd>
+<div class="block">Initialize dimension metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ErrorMetadata.html#initialize()">initialize()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IExtendedMetadata.html#initialize(java.io.File)">initialize(File)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dt>
+<dd>
+<div class="block">Initialize with a file</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#initialize(java.util.Map)">initialize(Map&lt;String, ? extends Serializable&gt;)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Initialize metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/MaskMetadata.html#initialize(org.eclipse.january.dataset.IDataset)">initialize(IDataset)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a></dt>
+<dd>
+<div class="block">Initialize mask</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#initialize(java.util.Map)">initialize(Map&lt;String, ? extends Serializable&gt;)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/OriginMetadata.html#initialize(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.Slice[],%20int[],%20java.lang.String,%20java.lang.String)">initialize(ILazyDataset, Slice[], int[], String, String)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dt>
+<dd>
+<div class="block">Initialize origin of dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#initialize(double[],%20double,%20double)">initialize(double[], double, double)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>
+<div class="block">Initialize PEEM metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#initialize(org.eclipse.january.dataset.Dataset)">initialize(Dataset)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#INT">INT</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Integer (same as signed 32-bit integer)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#INT16">INT16</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Signed 16-bit integer</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#INT32">INT32</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Signed 32-bit integer</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#INT64">INT64</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Signed 64-bit integer</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#INT8">INT8</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Signed 8-bit integer</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegerDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegerIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over an integer dataset and return its items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator(org.eclipse.january.dataset.Dataset,%20int)">IntegerIterator(Dataset, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator(org.eclipse.january.dataset.Dataset,%20int,%20int)">IntegerIterator(Dataset, int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegersIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over an array of integer datasets and return its items</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator(int[],%20java.lang.Object...)">IntegersIterator(int[], Object...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of an array of objects</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator(boolean,%20int[],%20java.lang.Object...)">IntegersIterator(boolean, int[], Object...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over the items of an array of objects</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IDataset,%20java.lang.Number,%20java.lang.Number)">interpolate(Dataset, Dataset, IDataset, Number, Number)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)">interpolate(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double)">interpolate(Dataset, Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset with a mask.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">interpolate(double[], CompoundDataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate an array of values at a point in a compound 1D
+ dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)">interpolate(Dataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)">interpolate(Dataset, Dataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset with a mask.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">interpolate(double[], CompoundDataset, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate an array of values at a point in a compound 2D
+ dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double...)">interpolate(Dataset, double...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double...)">interpolate(Dataset, Dataset, double...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset with a mask.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double...)">interpolate(double[], CompoundDataset, double...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Linearly interpolate an array of values at a point in a compound n-D
+ dataset.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">InterpolatorUtils</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#InterpolatorUtils()">InterpolatorUtils()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">IOperation</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Marker interface for all operations</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place raise to power of object o</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#ipower(java.lang.Object)">ipower(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset)">iqr(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset,%20int)">iqr(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place remainder</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#iremainder(java.lang.Object)">iremainder(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">IRemoteData</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">This class provides access to remote data which
+ may consist of more than one remote dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#isAll()">isAll()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if all of originals shapes are covered by positive
+ steps slices, else <code>false</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.html#isCancelled()">isCancelled()</a></span> - Method in interface org.eclipse.january.<a href="./org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.Stub.html#isCancelled()">isCancelled()</a></span> - Method in class org.eclipse.january.<a href="./org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#isClassSupportedAsElement(java.lang.Class)">isClassSupportedAsElement(Class&lt;? extends Object&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isClose(double,%20double,%20double,%20double)">isClose(double, double, double, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith(ILazyDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith(ILazyDataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#isConnected()">isConnected()</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#isDirty()">isDirty()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#isDTypeComplex(int)">isDTypeComplex(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#isDTypeElemental(int)">isDTypeElemental(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#isDTypeFloating(int)">isDTypeFloating(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#isDTypeInteger(int)">isDTypeInteger(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#isDTypeNumerical(int)">isDTypeNumerical(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#isExpanded()">isExpanded()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if the slice makes shape larger, else <code>false</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazyLoader.html#isFileReadable()">isFileReadable()</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazySaver.html#isFileWriteable()">isFileWriteable()</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object)">isFinite(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isFinite(Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object)">isInfinite(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isInfinite(Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#isize">isize</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isMonotonic(java.lang.Object)">isMonotonic(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isMonotonic(java.lang.Object,%20org.eclipse.january.dataset.Comparisons.Monotonicity)">isMonotonic(Object, Comparisons.Monotonicity)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object)">isNaN(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNaN(Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object)">isNegativeInfinite(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNegativeInfinite(Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#isOutputDouble()">isOutputDouble()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object)">isPositiveInfinite(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isPositiveInfinite(Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#isSliceComplete()">isSliceComplete()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if the slice has a maximum size equal to the current
+ size, else <code>false</code>.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#isStrictlyMonotonic(java.lang.Object)">isStrictlyMonotonic(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>
+<div class="block">XOR</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place subtraction with object o</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#isubtract(java.lang.Object)">isubtract(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#isWritingExpected()">isWritingExpected()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_K_">
+<!--   -->
+</a>
+<h2 class="title">K</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">kroneckerProduct(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Create the Kronecker product as defined by 
+ kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]
+ where kn = sn * in + jn for n = 0...N and s is shape of b</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20boolean...)">kurtosis(Dataset, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">kurtosis(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_L_">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#LazyDataset(java.lang.String,%20int,%20int,%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDataset(String, int, int, int[], ILazyLoader)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#LazyDataset(java.lang.String,%20int,%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDataset(String, int, int[], ILazyLoader)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDatasetBase</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#LazyDatasetBase()">LazyDatasetBase()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDynamicDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset(java.lang.String,%20int,%20int,%20int[],%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDynamicDataset(String, int, int, int[], int[], ILazyLoader)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyMaths</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Mathematics class for lazy datasets</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#lazyRand(int...)">lazyRand(int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#lazyRand(java.lang.String,%20int...)">lazyRand(String, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#lazyRand(int,%20java.lang.String,%20int...)">lazyRand(int, String, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyWriteableDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20int,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset(String, int, int, int[], int[], int[], ILazySaver)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset(String, int, int[], int[], int[], ILazySaver)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20java.lang.Class,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset(String, Class&lt;?&gt;, int, int[], int[], int[], ILazySaver)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20java.lang.Class,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset(String, Class&lt;?&gt;, int[], int[], int[], ILazySaver)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Create a lazy dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object)">lessThan(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThan(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object)">lessThanOrEqualTo(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThanOrEqualTo(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">LinearAlgebra</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#LinearAlgebra()">LinearAlgebra()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">LinearAlgebra.NormOrder</span></a> - Enum in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Order value for norm</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#lnnorm(org.eclipse.january.dataset.Dataset)">lnnorm(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a natural log scale</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#loader">loader</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/IMetaLoader.html#loadMetadata(org.eclipse.january.IMonitor)">loadMetadata(IMonitor)</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io">IMetaLoader</a></dt>
+<dd>
+<div class="block">Loads the meta data from the file but not all the data.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#logger">logger</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#logger">logger</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>
+<div class="block">Setup the logging facilities</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object)">logicalAnd(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalAnd(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object)">logicalNot(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Negate item-wise</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalNot(Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Negate item-wise</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object)">logicalOr(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalOr(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object)">logicalXor(Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalXor(Object, Object, BooleanDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#lognorm(org.eclipse.january.dataset.Dataset)">lognorm(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a log10 scale</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LongDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#longOperate(long)">longOperate(long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#longOperate(long,%20long)">longOperate(long, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.html#longOperate(long)">longOperate(long)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#longOperate(long)">longOperate(long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#lowMed(org.eclipse.january.dataset.Dataset)">lowMed(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>
+<div class="block">Returns the lomed</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_M_">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#makeFinite(org.eclipse.january.dataset.Dataset)">makeFinite(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Make floating point datasets contain only finite values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset)">makeUnsigned(IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset,%20boolean)">makeUnsigned(IDataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#map">map</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes masking information associated with a dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Maths</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Mathematics class</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#Maths()">Maths()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#max(boolean...)">max(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#max(boolean...)">max(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#max(int,%20boolean...)">max(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#max(boolean...)">max(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#max(org.eclipse.january.dataset.ILazyDataset,%20int...)">max(ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#max(boolean...)">max(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#maxItem()">maxItem()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#maxPos(boolean...)">maxPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#maxShape">maxShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CollectionStats.html#mean(java.util.List)">mean(List&lt;IDataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></dt>
+<dd>
+<div class="block">Used to get a mean image from a set of images for instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#mean(boolean...)">mean(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#mean(boolean...)">mean(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#mean(int,%20boolean...)">mean(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#mean(int,%20int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">mean(int, int, ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#mean(org.eclipse.january.dataset.ILazyDataset,%20int...)">mean(ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CollectionStats.html#median(java.util.List)">median(List&lt;IDataset&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></dt>
+<dd>
+<div class="block">Used to get a median image from a set of images for instance.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset,%20int)">median(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset)">median(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#medianAbsoluteDeviation(org.eclipse.january.dataset.Dataset)">medianAbsoluteDeviation(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>
+<div class="block">Returns the Median Absolute Deviation (MAD) and the median.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#medianOFTwoPrimitiveArrays(double[],%20double[])">medianOFTwoPrimitiveArrays(double[], double[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>
+<div class="block">Calculates the overall median of two double arrays</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#meshGrid(org.eclipse.january.dataset.Dataset...)">meshGrid(Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Construct a list of datasets where each represents a coordinate varying over the hypergrid
+ formed by the input list of axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Metadata</span></a> - Class in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">Basic implementation of metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#Metadata()">Metadata()</a></span> - Constructor for class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#Metadata(java.util.Map)">Metadata(Map&lt;String, ? extends Serializable&gt;)</a></span> - Constructor for class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="strong">MetadataException</span></a> - Exception in <a href="./org/eclipse/january/package-summary.html">org.eclipse.january</a></dt>
+<dd>
+<div class="block">Exception associated with metadata</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/MetadataException.html#MetadataException()">MetadataException()</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/MetadataException.html#MetadataException(java.lang.String)">MetadataException(String)</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/MetadataException.html#MetadataException(java.lang.Throwable)">MetadataException(Throwable)</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/MetadataException.html#MetadataException(java.lang.String,%20java.lang.Throwable)">MetadataException(String, Throwable)</a></span> - Constructor for exception org.eclipse.january.<a href="./org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">MetadataFactory</span></a> - Class in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">MetadataType</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This is a marker interface for all metadata items which can be associated
+ with a dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#min(boolean...)">min(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#min(boolean...)">min(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#min(int,%20boolean...)">min(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#min(boolean...)">min(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#min(org.eclipse.january.dataset.ILazyDataset,%20int...)">min(ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#min(boolean...)">min(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#minItem()">minItem()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#minPos(boolean...)">minPos(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#multiply(java.util.Collection,%20boolean)">multiply(Collection&lt;IDataset&gt;, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Multiplies all sets passed in together
+ 
+ The first IDataset must cast to Dataset</div>
+</dd>
+</dl>
+<a name="_N_">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#nonZero(org.eclipse.january.dataset.Dataset)">nonZero(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.Dataset)">norm(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.CompoundDataset,%20boolean)">norm(CompoundDataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Function that returns a normalised compound dataset which is bounded between 0 and 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset)">norm(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.LinearAlgebra.NormOrder)">norm(Dataset, LinearAlgebra.NormOrder)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20double)">norm(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">NullIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullIterator.html#NullIterator(int[],%20int[])">NullIterator(int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_O_">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Object</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ObjectDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for objects</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">ObjectDatasetBase</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">The data itself, held in a 1D array, but the object will wrap it to appear as possessing as many dimensions as
+ wanted</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Output dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>
+<div class="block">Output dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>
+<div class="block">Index in output dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#oIndex">oIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>
+<div class="block">Index in output dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#oIndex">oIndex</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>
+<div class="block">Index in array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(T)">ones(T)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20int)">ones(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(int...)">ones(int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(int[],%20int)">ones(int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#ones(int[], Class)</code></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20int[],%20int)">ones(int, int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)"><code>DatasetFactory.ones(Class, int...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)">ones(Class&lt;T&gt;, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20java.lang.Class,%20int...)">ones(int, Class&lt;T&gt;, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">ones(Dataset, Class&lt;T&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.UnaryOperation,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate(UnaryOperation, Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dt>
+<dd>
+<div class="block">Operate on a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.BinaryOperation,%20java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate(BinaryOperation, Object, Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dt>
+<dd>
+<div class="block">Operate on a dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.html#Operations()">Operations()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Addition</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Addition with boolean or</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#Operations.Addition()">Operations.Addition()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Division</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Division with boolean and of negated second operand</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#Operations.Division()">Operations.Division()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.DivisionTowardsFloor</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#Operations.DivisionTowardsFloor()">Operations.DivisionTowardsFloor()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.DivisionWithZero</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html#Operations.DivisionWithZero()">Operations.DivisionWithZero()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Exponentiation</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Exponentiation with boolean and</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Exponentiation.html#Operations.Exponentiation()">Operations.Exponentiation()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Maximum</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Select maximum of a and b</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#Operations.Maximum()">Operations.Maximum()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Minimum</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Select minimum of a and b</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#Operations.Minimum()">Operations.Minimum()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Multiplication</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Multiplication with boolean and</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#Operations.Multiplication()">Operations.Multiplication()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Negation</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Negation with boolean not</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#Operations.Negation()">Operations.Negation()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Remainder</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Remainder</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#Operations.Remainder()">Operations.Remainder()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Subtraction</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Subtraction with boolean or of negated second operand</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#Operations.Subtraction()">Operations.Subtraction()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseBase</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Use given value if a > b else use a</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfEqualTo</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Use given value if a == b else use a</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#Operations.UseIfEqualTo(boolean,%20long,%20double,%20double)">Operations.UseIfEqualTo(boolean, long, double, double)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#Operations.UseIfEqualTo(java.lang.Number)">Operations.UseIfEqualTo(Number)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#Operations.UseIfEqualTo(org.apache.commons.math3.complex.Complex)">Operations.UseIfEqualTo(Complex)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfGreaterThan</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Use given value if a > b else use a</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#Operations.UseIfGreaterThan(boolean,%20long,%20double)">Operations.UseIfGreaterThan(boolean, long, double)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#Operations.UseIfGreaterThan(java.lang.Number)">Operations.UseIfGreaterThan(Number)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfGreaterThanOrEqualTo</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Use given value if a >= b else use a</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#Operations.UseIfGreaterThanOrEqualTo(boolean,%20long,%20double)">Operations.UseIfGreaterThanOrEqualTo(boolean, long, double)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#Operations.UseIfGreaterThanOrEqualTo(java.lang.Number)">Operations.UseIfGreaterThanOrEqualTo(Number)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfLessThan</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Use given value if a < b else use a</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#Operations.UseIfLessThan(boolean,%20long,%20double)">Operations.UseIfLessThan(boolean, long, double)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#Operations.UseIfLessThan(java.lang.Number)">Operations.UseIfLessThan(Number)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfLessThanOrEqualTo</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Use given value if a <= b else use a</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#Operations.UseIfLessThanOrEqualTo(boolean,%20long,%20double)">Operations.UseIfLessThanOrEqualTo(boolean, long, double)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#Operations.UseIfLessThanOrEqualTo(java.lang.Number)">Operations.UseIfLessThanOrEqualTo(Number)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/package-summary.html">org.eclipse.january</a> - package org.eclipse.january</dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> - package org.eclipse.january.dataset</dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> - package org.eclipse.january.io</dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> - package org.eclipse.january.metadata</dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">Defines the origin of a dataset which is a slice of a parent dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#oShape">oShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#outerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">outerProduct(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate the outer product of two datasets</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Outliers</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Estimators of the scale of a Dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#Outliers()">Outliers()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#outlierValues(org.eclipse.january.dataset.Dataset,%20double,%20double,%20int)">outlierValues(Dataset, double, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate approximate outlier values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#outlierValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20double,%20double,%20int)">outlierValues(Dataset, Dataset, boolean, double, double, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate approximate outlier values.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#outputA">outputA</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#outputB">outputB</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal(Serializable, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal(Serializable, int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set the buffer that backs the dataset and its shape</div>
+</dd>
+</dl>
+<a name="_P_">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastUtils.html#padShape(int[],%20int)">padShape(int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></dt>
+<dd>
+<div class="block">Pad shape by prefixing with ones</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes Peem-related information</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20boolean)">phaseAsComplexNumber(Object, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Create a phase only dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">phaseAsComplexNumber(Object, Dataset, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Create a phase only dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#poisson(double,%20int...)">poisson(double, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">position in dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">PositionIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to provide iteration through a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[])">PositionIterator(int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over elements of a dataset that are within
+ the shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int,%20int[])">PositionIterator(int, int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over a single item broadcasted to given shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20int...)">PositionIterator(int[], int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20org.eclipse.january.dataset.Slice[],%20int[])">PositionIterator(int[], Slice[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20int[],%20int[],%20int[],%20int[])">PositionIterator(int[], int[], int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(org.eclipse.january.dataset.SliceND,%20int...)">PositionIterator(SliceND, int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int,%20org.eclipse.january.dataset.SliceND,%20int...)">PositionIterator(int, SliceND, int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#postShape">postShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#power(org.eclipse.january.dataset.Dataset,%20int)">power(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Raise dataset to given power by matrix multiplication</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#prepShape">prepShape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#product(int,%20boolean...)">product(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#product(boolean...)">product(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#product(org.eclipse.january.dataset.ILazyDataset,%20int)">product(ILazyDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20boolean...)">product(Dataset, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">product(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#put(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Object)">put(T, Dataset, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#put(T,%20int[],%20java.lang.Object)">put(T, int[], Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</dd>
+</dl>
+<a name="_Q_">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20double)">quantile(Dataset, double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20double...)">quantile(Dataset, double...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20int,%20double...)">quantile(Dataset, int, double...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</dd>
+</dl>
+<a name="_R_">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#rand(int...)">rand(int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#rand(double,%20double,%20int...)">rand(double, double, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#randint(int,%20int,%20int[])">randint(int, int, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#randn(int...)">randn(int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#randn(double,%20double,%20int...)">randn(double, double, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Random</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to hold methods to create random datasets
+ 
+ Emulates numpy.random</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#Random()">Random()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#random_integers(int,%20int,%20int[])">random_integers(int, int, int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object)">reciprocal(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Find reciprocal from dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">reciprocal(Object, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Find reciprocal from dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#refresh(int[])">refresh(int[])</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>
+<div class="block">Refresh with given shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicMetadataUtils.html#refreshDynamicAxesMetadata(java.util.List,%20int[])">refreshDynamicAxesMetadata(List&lt;AxesMetadata&gt;, int[])</a></span> - Static method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">DynamicMetadataUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#refreshShape()">refreshShape()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazyDynamicLoader.html#refreshShape()">refreshShape()</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io">ILazyDynamicLoader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/MetadataFactory.html#registerClass(java.lang.Class)">registerClass(Class&lt;T&gt;)</a></span> - Static method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata">MetadataFactory</a></dt>
+<dd>
+<div class="block">Register metadata class</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#regrid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regrid(Dataset, Dataset, Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#regridOld(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regridOld(Dataset, Dataset, Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#remap1D(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remap1D(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapAxis(Dataset, int, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapOneAxis(Dataset, int, Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataListenerDelegate.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener(IDataListener)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener(IDataListener)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Remove a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener(IDataListener)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#removeNansAndInfinities(org.eclipse.january.dataset.Dataset,%20java.lang.Number)">removeNansAndInfinities(Dataset, Number)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Removes NaNs and infinities from floating point datasets.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#repeat(T,%20int[],%20int)">repeat(T, int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Constructs a dataset which has its elements along an axis replicated from
+ the original dataset by the number of times given in the repeats array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanNullIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastPairIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousPairIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IndexIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></dt>
+<dd>
+<div class="block">Reset iterator</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegersIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/NullIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/PositionIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleItemIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#reset()">reset()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#reshape(int...)">reshape(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Reshapeable</span></a> - Annotation Type in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This is an annotation for any metadata field that should be reshaped or squeezed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata(int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">Reshape all datasets in metadata that are annotated by @Reshapeable.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual(Object, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="./org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual(Object, boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Calculate residual of dataset with object o</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDataset.html#residual(java.lang.Object)">residual(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#residual(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">residual(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">The residual is the sum of squared differences</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDataset.html#residual(java.lang.Object)">residual(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual(Object, Dataset, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#resize(T,%20int...)">resize(T, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Resize a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#resize(int...)">resize(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Change shape and size of dataset in-place</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Change shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#resize(int...)">resize(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#RGB">RGB</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Array of three signed 16-bit integers for RGB values</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">RGBDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset()">RGBDataset()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a null dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(int...)">RGBDataset(int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(short[],%20int...)">RGBDataset(short[], int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.RGBDataset)">RGBDataset(RGBDataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Copy a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(int[],%20int[],%20int[],%20int...)">RGBDataset(int[], int[], int[], int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(short[],%20short[],%20short[],%20int...)">RGBDataset(short[], short[], short[], int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(byte[],%20byte[],%20byte[],%20int...)">RGBDataset(byte[], byte[], byte[], int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">RGBDataset(Dataset, Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a dataset using given colour data (colour components are given separately)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.Dataset)">RGBDataset(Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dt>
+<dd>
+<div class="block">Create a dataset using given grey data</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#roll(T,%20int,%20java.lang.Integer)">roll(T, int, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Roll items over given axis by given amount</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#rollAxis(T,%20int,%20int)">rollAxis(T, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Roll the specified axis backwards until it lies in given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#rotate90(T)">rotate90(T)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#rotate90(T,%20int)">rotate90(T, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">RunningAverage</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">A running mean class</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RunningAverage.html#RunningAverage(org.eclipse.january.dataset.IDataset)">RunningAverage(IDataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">RunningAverage</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_S_">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#seed(int)">seed(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#seed(int[])">seed(int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Random.html#seed(long)">seed(long)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset,%20java.lang.Object,%20java.lang.Object)">select(BooleanDataset, Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Select content according where condition is true.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset[],%20java.lang.Object[],%20java.lang.Object)">select(BooleanDataset[], Object[], Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Select content from choices where condition is true, otherwise use default.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int,%20int)">selectDatasetRegion(Dataset, int, int, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#serializeDataset(org.eclipse.january.dataset.IDataset)">serializeDataset(IDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Serialize dataset by flattening it.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#serialVersionUID">serialVersionUID</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Update this when there are any serious changes to API</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazyLoader.html#serialVersionUID">serialVersionUID</a></span> - Static variable in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazySaver.html#serialVersionUID">serialVersionUID</a></span> - Static variable in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#serialVersionUID">serialVersionUID</a></span> - Static variable in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Update this when there are any serious changes to API</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#set(double,%20double,%20int)">set(double, double, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>
+<div class="block">Set real and imaginary values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#set(double,%20double,%20int,%20int)">set(double, double, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>
+<div class="block">Set real and imaginary values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#set(double,%20double,%20int...)">set(double, double, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>
+<div class="block">Set real and imaginary values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#set(float,%20float,%20int)">set(float, float, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>
+<div class="block">Set real and imaginary values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#set(float,%20float,%20int,%20int)">set(float, float, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>
+<div class="block">Set real and imaginary values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#set(float,%20float,%20int...)">set(float, float, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>
+<div class="block">Set real and imaginary values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set the value given by object at the first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set the value given by object at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set the value given by object at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Set the value given by object at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object)">set(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int)">set(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int,%20int)">set(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int...)">set(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setAbs(int,%20boolean)">setAbs(int, boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setAbs(int,%20byte)">setAbs(int, byte)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs(int,%20org.apache.commons.math3.complex.Complex)">setAbs(int, Complex)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs(int,%20double,%20double)">setAbs(int, double, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>
+<div class="block">Set item at index to complex value given by real and imaginary parts</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs(int,%20org.apache.commons.math3.complex.Complex)">setAbs(int, Complex)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs(int,%20float,%20float)">setAbs(int, float, float)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>
+<div class="block">Set item at index to complex value given by real and imaginary parts</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setAbs(int,%20byte[])">setAbs(int, byte[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setAbs(int,%20byte)">setAbs(int, byte)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs(int,%20double[])">setAbs(int, double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs(int,%20double)">setAbs(int, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs(int,%20float[])">setAbs(int, float[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs(int,%20float)">setAbs(int, float)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs(int,%20int[])">setAbs(int, int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs(int,%20int)">setAbs(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setAbs(int,%20long[])">setAbs(int, long[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setAbs(int,%20long)">setAbs(int, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setAbs(int,%20short[])">setAbs(int, short[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Set values at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setAbs(int,%20short)">setAbs(int, short)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#setAbs(int,%20java.util.Date)">setAbs(int, Date)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setAbs(int,%20double)">setAbs(int, double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setAbs(int,%20float)">setAbs(int, float)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setAbs(int,%20int)">setAbs(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setAbs(int,%20long)">setAbs(int, long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setAbs(int,%20java.lang.Object)">setAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setAbs(int,%20short)">setAbs(int, short)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setAbs(int,%20java.lang.String)">setAbs(int, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/AxesMetadata.html#setAxis(int,%20org.eclipse.january.dataset.ILazyDataset...)">setAxis(int, ILazyDataset...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></dt>
+<dd>
+<div class="block">Set axis datasets for given dimension.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean(Object, Dataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes(Object, Object...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setChunking(int...)">setChunking(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set chunking</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setChunking(int...)">setChunking(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#setConnected(boolean)">setConnected(boolean)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Set aliased data as base data</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setData()">setData()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset(ILazyDataset)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></dt>
+<dd>
+<div class="block">Set dataset to be checked for signs of change.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset(ILazyDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#setDatasetName(java.lang.String)">setDatasetName(String)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">The dataset location/name in the file</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#setDirty()">setDirty()</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>
+<div class="block">Call to indicate dataset has been modified so statistics are not up-to-date</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#setDroppedCount(int)">setDroppedCount(int)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements(Dataset, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/ErrorMetadata.html#setError(org.eclipse.january.dataset.ILazyDataset)">setError(ILazyDataset)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></dt>
+<dd>
+<div class="block">Set the error</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer(Serializable)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Set a copy of the buffer that backs the (squared) error data</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer(Serializable)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set the buffer that backs the (squared) error data</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#setErrors(java.io.Serializable)">setErrors(Serializable)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors(Serializable)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Set the errors.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors(Serializable)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#setFieldOfView(double)">setFieldOfView(double)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>
+<div class="block">Sets fieldOfView value in microns</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#setFilePath(java.lang.String)">setFilePath(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#setFilePath(java.lang.String)">setFilePath(String)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#setFilePath(java.lang.String)">setFilePath(String)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setFillValue(java.lang.Object)">setFillValue(Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set the value used to fill an un-initialized dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setFillValue(java.lang.Object)">setFillValue(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#setHash(int)">setHash(int)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean)">setItem(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int)">setItem(boolean, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int,%20int)">setItem(boolean, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int...)">setItem(boolean, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setItem(byte)">setItem(byte)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setItem(byte,%20int)">setItem(byte, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setItem(byte,%20int,%20int)">setItem(byte, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setItem(byte,%20int...)">setItem(byte, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[])">setItem(byte[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Set values at first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[],%20int)">setItem(byte[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[],%20int,%20int)">setItem(byte[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[],%20int...)">setItem(byte[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>
+<div class="block">Set values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[])">setItem(double[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Set values at first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int)">setItem(double[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int,%20int)">setItem(double[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int...)">setItem(double[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>
+<div class="block">Set values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[])">setItem(float[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Set values at first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int)">setItem(float[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int,%20int)">setItem(float[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int...)">setItem(float[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>
+<div class="block">Set values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[])">setItem(int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Set values at first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[],%20int)">setItem(int[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[],%20int,%20int)">setItem(int[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[],%20int...)">setItem(int[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>
+<div class="block">Set values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[])">setItem(long[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Set values at first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[],%20int)">setItem(long[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[],%20int,%20int)">setItem(long[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[],%20int...)">setItem(long[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>
+<div class="block">Set values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[])">setItem(short[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Set values at first position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int)">setItem(short[], int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int,%20int)">setItem(short[], int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Set values at given position.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int...)">setItem(short[], int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>
+<div class="block">Set values at given position</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date)">setItem(Date)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date,%20int)">setItem(Date, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date,%20int,%20int)">setItem(Date, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date,%20int...)">setItem(Date, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setItem(double)">setItem(double)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setItem(double,%20int)">setItem(double, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setItem(double,%20int,%20int)">setItem(double, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setItem(double,%20int...)">setItem(double, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setItem(float)">setItem(float)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setItem(float,%20int)">setItem(float, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setItem(float,%20int,%20int)">setItem(float, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setItem(float,%20int...)">setItem(float, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setItem(int)">setItem(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setItem(int,%20int)">setItem(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setItem(int,%20int,%20int)">setItem(int, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setItem(int,%20int...)">setItem(int, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setItem(long)">setItem(long)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setItem(long,%20int)">setItem(long, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setItem(long,%20int,%20int)">setItem(long, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setItem(long,%20int...)">setItem(long, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object)">setItem(Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int)">setItem(Object, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int,%20int)">setItem(Object, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int...)">setItem(Object, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setItem(short)">setItem(short)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setItem(short,%20int)">setItem(short, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setItem(short,%20int,%20int)">setItem(short, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setItem(short,%20int...)">setItem(short, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String)">setItem(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at first point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int)">setItem(String, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int,%20int)">setItem(String, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int...)">setItem(String, int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect(int, int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set content on axes in given position to values in array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes(int[], boolean[], Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#setLength(int)">setLength(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimum(T,%20T,%20boolean...)">setMaximumMinimum(T, T, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimumSum(T,%20T,%20T,%20boolean...)">setMaximumMinimumSum(T, T, T, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumPositions(java.util.List,%20boolean...)">setMaximumPositions(List&lt;int[]&gt;, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength(int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>
+<div class="block">Set maximum line length for toString() method</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Set maximum shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#setMaxShape(int...)">setMaxShape(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata(MetadataType)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Set metadata on the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata(MetadataType)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/IMetadata.html#setMetadata(java.util.Map)">setMetadata(Map&lt;String, ? extends Serializable&gt;)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dt>
+<dd>
+<div class="block">Set metadata map</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#setMetadata(java.util.Map)">setMetadata(Map&lt;String, ? extends Serializable&gt;)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>
+<div class="block">Set metadata map</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/StatisticsMetadata.html#setMinimumPositions(java.util.List,%20boolean...)">setMinimumPositions(List&lt;int[]&gt;, boolean...)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/INameable.html#setName(java.lang.String)">setName(String)</a></span> - Method in interface org.eclipse.january.<a href="./org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Set an item at absolute index from an object.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs(int, Object)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">Set to output doubles</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#setOutputDouble(boolean)">setOutputDouble(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>
+<div class="block">Set to output doubles</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IFileConnection.html#setPath(java.lang.String)">setPath(String)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></dt>
+<dd>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#setPosition(int)">setPosition(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Move the start and end to an other index keeping the same step and the
+ same gap between the two values</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html#setReceivedCount(int)">setReceivedCount(int)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver(ILazySaver)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set saver</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver(ILazySaver)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set saver (and also loader)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#setScaling(double)">setScaling(double)</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>
+<div class="block">Sets scaling micron/pixel</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#setShape(int...)">setShape(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DataEvent.html#setShape(int[])">setShape(int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Set a compatible shape for dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#setShape(int...)">setShape(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice(Object, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice(Object, Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice(Object, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice(Object, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice(Object, Slice...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice(Object, int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice(Object, Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundLongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice(Object, int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy array slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice(Object, Slice...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy array slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice(Object, SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is modelled after the NumPy array slice</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice(IMonitor, IDataset, SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set a slice of the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice(IMonitor, IDataset, int[], int[], int[])</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set a slice of the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice(IDataset, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set a slice of the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice(IMonitor, IDataset, int[], int[], int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice(IMonitor, IDataset, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#setSlice(int,%20java.lang.Integer,%20java.lang.Integer,%20int)">setSlice(int, Integer, Integer, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#setSlice(int,%20int,%20int,%20int)">setSlice(int, int, int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#setSlice(int,%20org.eclipse.january.dataset.Slice)">setSlice(int, Slice)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Set slice for given dimension.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice(Object, IndexIterator)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice(IMonitor, IDataset, SliceND)</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceAsync(IMonitor, IDataset, SliceND)</a></span> - Method in interface org.eclipse.january.io.<a href="./org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></dt>
+<dd>
+<div class="block">Non-blocking version of <a href="./org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync(IMonitor, IDataset, SliceND)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set a slice of the dataset synchronously</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync(IMonitor, IDataset, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#setStart(java.lang.Integer)">setStart(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Set the starting index of the slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#setStart(int...)">setStart(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
+ is set by default to 0</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#setStep(int)">setStep(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Set the step size inside of the Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#setStop(java.lang.Integer)">setStop(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Set the stopping index of the slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat(Format)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat(Format)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Set string output format</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/Metadata.html#setUserObjects(java.util.Collection)">setUserObjects(Collection&lt;Serializable&gt;)</a></span> - Method in class org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dt>
+<dd>
+<div class="block">Set user objects</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#setWritingAsync(boolean)">setWritingAsync(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">Set writing slices as asynchronous</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyWriteableDataset.html#setWritingAsync(boolean)">setWritingAsync(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDatasetConnector.html#setWritingExpected(boolean)">setWritingExpected(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></dt>
+<dd>
+<div class="block">If set to true the DataServer will not cache the dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/metadata/PeemMetadata.html#setXYMotorPosition(double[])">setXYMotorPosition(double[])</a></span> - Method in interface org.eclipse.january.metadata.<a href="./org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></dt>
+<dd>
+<div class="block">Sets X/y motor position in microns</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">The shape or dimensions of the dataset</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">ShapeChangeChecker</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Checks whether shape has changed between waits.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeChangeChecker.html#ShapeChangeChecker()">ShapeChangeChecker()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">ShapeUtils</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ShortDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SingleInputBroadcastIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">SingleInputBroadcastIterator(Dataset, Dataset)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">SingleInputBroadcastIterator(Dataset, Dataset, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20boolean)">SingleInputBroadcastIterator(Dataset, Dataset, boolean, boolean, boolean)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SingleItemIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a broadcasted single-item dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SingleItemIterator.html#SingleItemIterator(int,%20int)">SingleItemIterator(int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator over single item that will be broadcast over
+ given size of broadcast shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#size">size</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#size">size</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20boolean...)">skewness(Dataset, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">skewness(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Slice</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#Slice()">Slice()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object with the start and the stop value representing
+ the entirety of the sliced dimension of the Dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#Slice(java.lang.Integer)">Slice(Integer)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object with, by default the start set to 0 and with a
+ step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#Slice(java.lang.Integer,%20java.lang.Integer)">Slice(Integer, Integer)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object with, by default a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#Slice(java.lang.Integer,%20java.lang.Integer,%20java.lang.Integer)">Slice(Integer, Integer, Integer)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Constructs a Slice object on which it is possible to chooe the start, the
+ stop and the step.</div>
+</dd>
+<dt><a href="./org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Sliceable</span></a> - Annotation Type in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This is an annotation for any metadata field that should be sliced.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset(org.eclipse.january.dataset.ILazyDataset)">sliceAndConvertLazyDataset(ILazyDataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and
+ convert to our dataset implementation.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[])">SliceIterator(int[], int, int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[])">SliceIterator(int[], int, int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int)">SliceIterator(int[], int, int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int)">SliceIterator(int[], int, int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int[])">SliceIterator(int[], int, int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator(int[], int, SliceND)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator(int[], int, int, SliceND)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int[],%20int)">SliceIterator(int[], int, int[], int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></dt>
+<dd>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata(boolean, SliceND)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">Slice all datasets in metadata that are annotated by @Sliceable.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceND</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#SliceND(int[])">SliceND(int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice for whole of shape.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20org.eclipse.january.dataset.Slice...)">SliceND(int[], Slice...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20org.eclipse.january.dataset.Slice...)">SliceND(int[], int[], Slice...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20int[],%20int[])">SliceND(int[], int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20int[],%20int[],%20int[])">SliceND(int[], int[], int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceNDIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to provide slice iteration through a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceNDIterator.html#SliceNDIterator(org.eclipse.january.dataset.SliceND,%20int...)">SliceNDIterator(SliceND, int...)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dt>
+<dd>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#snFast(org.eclipse.january.dataset.Dataset)">snFast(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Outliers.html#snNaive(org.eclipse.january.dataset.Dataset)">snNaive(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></dt>
+<dd>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#solve(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solve(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Solve linear matrix equation A x = v</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#solveSVD(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solveSVD(Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Solve least squares matrix equation A x = v by SVD</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanDatasetBase.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ByteDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">In-place sort of dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#sort(T)">sort(T)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#sort(T,%20java.lang.Integer)">sort(T, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#sort(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">sort(Dataset, Dataset...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Sort in place given dataset and reorder ancillary datasets too</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DateDatasetImpl.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DoubleDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/FloatDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IntegerDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LongDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ObjectDatasetBase.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShortDataset.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StringDatasetBase.html#sort(java.lang.Integer)">sort(Integer)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean)">split(Dataset, int, int, boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Split a dataset into equal sections along given axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int[],%20int)">split(Dataset, int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Split a dataset into parts along given axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#squeeze()">squeeze()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#squeeze(boolean)">squeeze(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></dt>
+<dd>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#squeezeEnds()">squeezeEnds()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#squeezeShape(int[],%20boolean)">squeezeShape(int[], boolean)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Remove dimensions of 1 in given shape - from both ends only, if true</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ShapeUtils.html#squeezeShape(int[],%20int)">squeezeShape(int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></dt>
+<dd>
+<div class="block">Remove dimension of 1 in given shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker(int, IDatasetChangeChecker)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Starts a periodic checker to see if dataset has changed in some manner.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker(int, IDatasetChangeChecker)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;<a href="./org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&gt; - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">Store standard statistics</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Stats</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Statistics class
+ 
+ TODO Where is mode? http://en.wikipedia.org/wiki/Mode_(statistics)</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#Stats()">Stats()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation(int, boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation(boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation(int, boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int)">stdDeviation(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation(int, boolean, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Standard deviation is square root of the variance</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation(boolean, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Standard deviation is square root of the variance</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Standard deviation is square root of the variance</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation(int, boolean, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Standard deviation is square root of the variance</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIterator.html#storeCurrentValues()">storeCurrentValues()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues()">storeCurrentValues()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></dt>
+<dd>
+<div class="block">Read and store current values</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html#storeCurrentValues()">storeCurrentValues()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">StrideIterator</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int[])">StrideIterator(int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[])">StrideIterator(int, int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int[],%20int[])">StrideIterator(int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int[],%20int[],%20int)">StrideIterator(int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int)">StrideIterator(int, int[], int[], int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20int)">StrideIterator(int, int[], int[], int, int)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int[],%20int[])">StrideIterator(int, int[], int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20int[],%20int[],%20int[])">StrideIterator(int, int[], int[], int, int[], int[], int[])</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20org.eclipse.january.dataset.SliceND)">StrideIterator(int, int[], int[], int, SliceND)</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">String</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">StringDataset</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for objects</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">StringDatasetBase</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.Stub.html#subTask(java.lang.String)">subTask(String)</a></span> - Method in class org.eclipse.january.<a href="./org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.html#subTask(java.lang.String)">subTask(String)</a></span> - Method in interface org.eclipse.january.<a href="./org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></dt>
+<dd>
+<div class="block">Starts a subtask.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum(int, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html#sum(boolean...)">sum(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ComplexFloatDataset.html#sum(boolean...)">sum(boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#sum(int,%20boolean...)">sum(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum(boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum(int, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int)">sum(ILazyDataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int...)">sum(ILazyDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20boolean,%20int...)">sum(ILazyDataset, boolean, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#sum(org.eclipse.january.dataset.Dataset,%20boolean...)">sum(Dataset, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes(int, int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#swapAxes(int,%20int)">swapAxes(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes(int, int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">Swap two axes in dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#swapAxes(org.eclipse.january.dataset.IDataset,%20int,%20int)">swapAxes(IDataset, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Swap two axes in dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#synchronizedCopy()">synchronizedCopy()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</dd>
+</dl>
+<a name="_T_">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#take(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">take(T, Dataset, Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Take items from dataset along an axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#take(T,%20int[],%20java.lang.Integer)">take(T, int[], Integer)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Take items from dataset along an axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int)">tensorDotProduct(Dataset, Dataset, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">tensorDotProduct(Dataset, Dataset, int[], int[])</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#tile(org.eclipse.january.dataset.IDataset,%20int...)">tile(IDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Construct a dataset that contains the original dataset repeated the number
+ of times in each axis given by corresponding entries in the reps array</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toBoolean(java.lang.Object)">toBoolean(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toByteArray(java.lang.Object,%20int)">toByteArray(Object, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toDoubleArray(java.lang.Object,%20int)">toDoubleArray(Object, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toFloatArray(java.lang.Object,%20int)">toFloatArray(Object, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toImag(java.lang.Object)">toImag(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toIntegerArray(java.lang.Object,%20int)">toIntegerArray(Object, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toLong(double)">toLong(double)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toLong(float)">toLong(float)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toLong(java.lang.Object)">toLong(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toLongArray(java.lang.Object,%20int)">toLongArray(Object, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toReal(java.lang.Object)">toReal(Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DTypeUtils.html#toShortArray(java.lang.Object,%20int)">toShortArray(Object, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString(boolean)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AggregateDataset.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></dt>
+<dd>
+<div class="block">override this</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString(boolean)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Addition.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Division.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Exponentiation.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Exponentiation.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Maximum.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Minimum.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Multiplication.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#toString(java.lang.String)">toString(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Negation.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Remainder.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.Subtraction.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString(String, String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Slice.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></dt>
+<dd>
+<div class="block">Returns a string construction of the slice with the python form.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/SliceND.html#toString()">toString()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></dt>
+<dd>
+<div class="block">Returns a string construction of the sliceND with the python form.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)">toString(String)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dt>
+<dd>
+<div class="block">Override this</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.html#toString(java.lang.String)">toString(String)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset)">trace(Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate trace of dataset - sum of values over 1st axis and 2nd axis</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">trace(Dataset, int, int, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dt>
+<dd>
+<div class="block">Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDataset.html#transformInput(org.eclipse.january.dataset.IDataset)">transformInput(IDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Transposable</span></a> - Annotation Type in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This is an annotation for any metadata field that should be transposed.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose(int...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#transpose(int...)">transpose(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose(int...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">See <a href="./org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#transpose(org.eclipse.january.dataset.IDataset,%20int...)">transpose(IDataset, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata(int[])</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></dt>
+<dd>
+<div class="block">Transpose all datasets in metadata that are annotated by @Transposable.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">typedProduct(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedProduct(Dataset, int, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">typedSum(Dataset, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedSum(Dataset, int, int, boolean...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_U_">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><a href="./org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">UnaryOperation</span></a> - Interface in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+</dd>
+<dt><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">UnaryOperation.Stub</span></a> - Class in <a href="./org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></dt>
+<dd>
+<div class="block">Stub class where only two methods need to be overridden:
+  <a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)"><code>UnaryOperation.Stub.complexOperate(double[], double, double)</code></a>,
+  <a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)"><code>UnaryOperation.Stub.toString(String)</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html#UnaryOperation.Stub()">UnaryOperation.Stub()</a></span> - Constructor for class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="./org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a> - Interface in <a href="./org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></dt>
+<dd>
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED">UNLIMITED</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></dt>
+<dd>
+<div class="block">Denotes an unlimited dimension in maximum shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/IDynamicShape.html#UNLIMITED">UNLIMITED</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></dt>
+<dd>
+<div class="block">Denotes an unlimited dimension in maximum shape</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html#UNLIMITED">UNLIMITED</a></span> - Static variable in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dt>
+<dd>
+<div class="block">See <a href="./org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED"><code>IDynamicDataset.UNLIMITED</code></a></div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">unwrap(Dataset, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object,%20java.lang.Object)">unwrap(Dataset, Object, Object)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object...)">unwrap(Dataset, Object...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></dt>
+<dd>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#unwrapUnsigned(org.eclipse.january.dataset.Dataset,%20int)">unwrapUnsigned(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Unwrap dataset elements so that all elements are unsigned</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/RunningAverage.html#update(org.eclipse.january.dataset.IDataset)">update(IDataset)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">RunningAverage</a></dt>
+<dd>
+<div class="block">Update average</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetUtils.html#utilsLogger">utilsLogger</a></span> - Static variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></dt>
+<dd>
+<div class="block">Setup the logging facilities</div>
+</dd>
+</dl>
+<a name="_V_">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/BooleanIterator.html#value">value</a></span> - Variable in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.Monotonicity.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.Monotonicity.html#values()">values()</a></span> - Static method in enum org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#values()">values()</a></span> - Static method in enum org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance(boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance(int, boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#variance()">variance()</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance(boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance(int)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance(int, boolean, boolean...)</a></span> - Method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#variance(int)">variance(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/CompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance(int, boolean, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#variance()">variance()</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance(boolean, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#variance(int)">variance(int)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance(int, boolean, boolean...)</a></span> - Method in interface org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_W_">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Stats.html#weightedResidual(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">weightedResidual(Dataset, Dataset, Dataset)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></dt>
+<dd>
+<div class="block">The residual is the sum of squared differences</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20java.lang.Number,%20java.lang.Number)">withinRange(Object, Number, Number)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20java.lang.Number,%20java.lang.Number)">withinRange(Object, BooleanDataset, Number, Number)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.Stub.html#worked(int)">worked(int)</a></span> - Method in class org.eclipse.january.<a href="./org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/IMonitor.html#worked(int)">worked(int)</a></span> - Method in interface org.eclipse.january.<a href="./org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="_Z_">
+<!--   -->
+</a>
+<h2 class="title">Z</h2>
+<dl>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(int...)">zeros(int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(int[],%20int)">zeros(int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)"><code>DatasetFactory.zeros(Class, int...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20int[],%20int)">zeros(int, int[], int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)"><code>DatasetFactory.zeros(int, Class, int...)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(T)">zeros(T)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20int)">zeros(Dataset, int)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>
+<div class="block"><span class="strong">Deprecated.</span>
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)"><code>DatasetFactory.zeros(Dataset, Class)</code></a></i></div>
+</div>
+</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)">zeros(Class&lt;T&gt;, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)">zeros(int, Class&lt;T&gt;, int...)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="strong"><a href="./org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">zeros(Dataset, Class&lt;T&gt;)</a></span> - Static method in class org.eclipse.january.dataset.<a href="./org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a href="#_A_">A</a>&nbsp;<a href="#_B_">B</a>&nbsp;<a href="#_C_">C</a>&nbsp;<a href="#_D_">D</a>&nbsp;<a href="#_E_">E</a>&nbsp;<a href="#_F_">F</a>&nbsp;<a href="#_G_">G</a>&nbsp;<a href="#_H_">H</a>&nbsp;<a href="#_I_">I</a>&nbsp;<a href="#_K_">K</a>&nbsp;<a href="#_L_">L</a>&nbsp;<a href="#_M_">M</a>&nbsp;<a href="#_N_">N</a>&nbsp;<a href="#_O_">O</a>&nbsp;<a href="#_P_">P</a>&nbsp;<a href="#_Q_">Q</a>&nbsp;<a href="#_R_">R</a>&nbsp;<a href="#_S_">S</a>&nbsp;<a href="#_T_">T</a>&nbsp;<a href="#_U_">U</a>&nbsp;<a href="#_V_">V</a>&nbsp;<a href="#_W_">W</a>&nbsp;<a href="#_Z_">Z</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="./overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="./overview-tree.html">Tree</a></li>
+<li><a href="./deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="./help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="./index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="./allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/index.html b/apidocs/2.1.1/index.html
new file mode 100644
index 0000000..a9608c3
--- /dev/null
+++ b/apidocs/2.1.1/index.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>The Eclipse January API Documentation</title>
+<script type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+        targetPage = targetPage.substring(1);
+    if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage)))
+        targetPage = "undefined";
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/DatasetException.html b/apidocs/2.1.1/org/eclipse/january/DatasetException.html
new file mode 100644
index 0000000..37a3922
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/DatasetException.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:21 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DatasetException (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DatasetException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/DatasetException.html" target="_top">Frames</a></li>
+<li><a href="DatasetException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january</div>
+<h2 title="Class DatasetException" class="title">Class DatasetException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.DatasetException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../src-html/org/eclipse/january/DatasetException.html#line.15">DatasetException</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Exception class associated with datasets</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../serialized-form.html#org.eclipse.january.DatasetException">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/DatasetException.html#DatasetException()">DatasetException</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/DatasetException.html#DatasetException(java.lang.String)">DatasetException</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/DatasetException.html#DatasetException(java.lang.String,%20java.lang.Throwable)">DatasetException</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/DatasetException.html#DatasetException(java.lang.Throwable)">DatasetException</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang">addSuppressed</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang">getCause</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang">getMessage</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang">getSuppressed</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang">initCause</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement[])" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DatasetException()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DatasetException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/DatasetException.html#line.21">DatasetException</a>()</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception()" title="class or interface in java.lang"><code>Exception.Exception()</code></a></dd></dl>
+</li>
+</ul>
+<a name="DatasetException(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DatasetException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/DatasetException.html#line.29">DatasetException</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - </dd><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception(java.lang.String)" title="class or interface in java.lang"><code>Exception.Exception(String)</code></a></dd></dl>
+</li>
+</ul>
+<a name="DatasetException(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DatasetException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/DatasetException.html#line.37">DatasetException</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cause</code> - </dd><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception(java.lang.Throwable)" title="class or interface in java.lang"><code>Exception.Exception(Throwable)</code></a></dd></dl>
+</li>
+</ul>
+<a name="DatasetException(java.lang.String, java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DatasetException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/DatasetException.html#line.46">DatasetException</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - </dd><dd><code>cause</code> - </dd><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception(java.lang.String,%20java.lang.Throwable)" title="class or interface in java.lang"><code>Exception.Exception(String, Throwable)</code></a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DatasetException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/DatasetException.html" target="_top">Frames</a></li>
+<li><a href="DatasetException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/IMonitor.Stub.html b/apidocs/2.1.1/org/eclipse/january/IMonitor.Stub.html
new file mode 100644
index 0000000..e0a51b1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/IMonitor.Stub.html
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:21 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMonitor.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMonitor.Stub (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMonitor.Stub.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/IMonitor.Stub.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january</div>
+<h2 title="Class IMonitor.Stub" class="title">Class IMonitor.Stub</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.IMonitor.Stub</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../src-html/org/eclipse/january/IMonitor.html#line.37">IMonitor.Stub</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.IMonitor">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.<a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></h3>
+<code><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/IMonitor.Stub.html#IMonitor.Stub()">IMonitor.Stub</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.Stub.html#isCancelled()">isCancelled</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.Stub.html#subTask(java.lang.String)">subTask</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName)</code>
+<div class="block">Starts a subtask.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.Stub.html#worked(int)">worked</a></strong>(int&nbsp;amount)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IMonitor.Stub()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IMonitor.Stub</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.Stub.html#line.37">IMonitor.Stub</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="worked(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>worked</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.Stub.html#line.40">worked</a>(int&nbsp;amount)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../org/eclipse/january/IMonitor.html#worked(int)">worked</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="isCancelled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCancelled</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.Stub.html#line.45">isCancelled</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../org/eclipse/january/IMonitor.html#isCancelled()">isCancelled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if user cancelled loading.</dd></dl>
+</li>
+</ul>
+<a name="subTask(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>subTask</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.Stub.html#line.50">subTask</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/eclipse/january/IMonitor.html#subTask(java.lang.String)">IMonitor</a></code></strong></div>
+<div class="block">Starts a subtask.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../org/eclipse/january/IMonitor.html#subTask(java.lang.String)">subTask</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMonitor.Stub.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/IMonitor.Stub.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/IMonitor.html b/apidocs/2.1.1/org/eclipse/january/IMonitor.html
new file mode 100644
index 0000000..881b8cf
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/IMonitor.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:21 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMonitor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMonitor (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMonitor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/IMonitor.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january</div>
+<h2 title="Interface IMonitor" class="title">Interface IMonitor</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../src-html/org/eclipse/january/IMonitor.html#line.18">IMonitor</a></pre>
+<div class="block">Interface to monitoring loading of files, which may take a while.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.html#isCancelled()">isCancelled</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.html#subTask(java.lang.String)">subTask</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName)</code>
+<div class="block">Starts a subtask.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/IMonitor.html#worked(int)">worked</a></strong>(int&nbsp;amount)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="worked(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>worked</h4>
+<pre>void&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.html#line.23">worked</a>(int&nbsp;amount)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>amount</code> - </dd></dl>
+</li>
+</ul>
+<a name="isCancelled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCancelled</h4>
+<pre>boolean&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.html#line.28">isCancelled</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if user cancelled loading.</dd></dl>
+</li>
+</ul>
+<a name="subTask(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>subTask</h4>
+<pre>void&nbsp;<a href="../../../src-html/org/eclipse/january/IMonitor.html#line.35">subTask</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskName)</pre>
+<div class="block">Starts a subtask.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>taskName</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMonitor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/IMonitor.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/INameable.html b/apidocs/2.1.1/org/eclipse/january/INameable.html
new file mode 100644
index 0000000..d233ff7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/INameable.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:21 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>INameable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="INameable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/INameable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/INameable.html" target="_top">Frames</a></li>
+<li><a href="INameable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january</div>
+<h2 title="Interface INameable" class="title">Interface INameable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a>, <a href="../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>, <a href="../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>, <a href="../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>, <a href="../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>, <a href="../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>, <a href="../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>, <a href="../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>, <a href="../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>, <a href="../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a>, <a href="../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>, <a href="../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>, <a href="../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>, <a href="../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>, <a href="../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>, <a href="../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>, <a href="../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>, <a href="../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>, <a href="../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>, <a href="../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>, <a href="../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>, <a href="../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>, <a href="../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>, <a href="../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../src-html/org/eclipse/january/INameable.html#line.15">INameable</a></pre>
+<div class="block">Simple interface to provide a data object with a name.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/INameable.html#getName()">getName</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../src-html/org/eclipse/january/INameable.html#line.20">getName</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the name</dd></dl>
+</li>
+</ul>
+<a name="setName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;<a href="../../../src-html/org/eclipse/january/INameable.html#line.25">setName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/INameable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/INameable.html" target="_top">Frames</a></li>
+<li><a href="INameable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/MetadataException.html b/apidocs/2.1.1/org/eclipse/january/MetadataException.html
new file mode 100644
index 0000000..fc2442a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/MetadataException.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:21 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MetadataException (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/MetadataException.html" target="_top">Frames</a></li>
+<li><a href="MetadataException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january</div>
+<h2 title="Class MetadataException" class="title">Class MetadataException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">org.eclipse.january.DatasetException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.MetadataException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../src-html/org/eclipse/january/MetadataException.html#line.15">MetadataException</a>
+extends <a href="../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Exception associated with metadata</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../serialized-form.html#org.eclipse.january.MetadataException">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/MetadataException.html#MetadataException()">MetadataException</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/MetadataException.html#MetadataException(java.lang.String)">MetadataException</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/MetadataException.html#MetadataException(java.lang.String,%20java.lang.Throwable)">MetadataException</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../org/eclipse/january/MetadataException.html#MetadataException(java.lang.Throwable)">MetadataException</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang">addSuppressed</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang">getCause</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang">getMessage</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang">getSuppressed</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang">initCause</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement[])" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MetadataException()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MetadataException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/MetadataException.html#line.21">MetadataException</a>()</pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception()" title="class or interface in java.lang"><code>Exception.Exception()</code></a></dd></dl>
+</li>
+</ul>
+<a name="MetadataException(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MetadataException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/MetadataException.html#line.29">MetadataException</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - </dd><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception(java.lang.String)" title="class or interface in java.lang"><code>Exception.Exception(String)</code></a></dd></dl>
+</li>
+</ul>
+<a name="MetadataException(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MetadataException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/MetadataException.html#line.37">MetadataException</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cause</code> - </dd><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception(java.lang.Throwable)" title="class or interface in java.lang"><code>Exception.Exception(Throwable)</code></a></dd></dl>
+</li>
+</ul>
+<a name="MetadataException(java.lang.String, java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MetadataException</h4>
+<pre>public&nbsp;<a href="../../../src-html/org/eclipse/january/MetadataException.html#line.46">MetadataException</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - </dd><dd><code>cause</code> - </dd><dt><span class="strong">See Also:</span></dt><dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true#Exception(java.lang.String,%20java.lang.Throwable)" title="class or interface in java.lang"><code>Exception.Exception(String, Throwable)</code></a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/MetadataException.html" target="_top">Frames</a></li>
+<li><a href="MetadataException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods_inherited_from_class_java.lang.Throwable">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/class-use/DatasetException.html b/apidocs/2.1.1/org/eclipse/january/class-use/DatasetException.html
new file mode 100644
index 0000000..66131fc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/class-use/DatasetException.html
@@ -0,0 +1,408 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.DatasetException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.DatasetException (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/DatasetException.html" target="_top">Frames</a></li>
+<li><a href="DatasetException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.DatasetException" class="title">Uses of Class<br>org.eclipse.january.DatasetException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january">org.eclipse.january</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a> in <a href="../../../../org/eclipse/january/package-summary.html">org.eclipse.january</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a> in <a href="../../../../org/eclipse/january/package-summary.html">org.eclipse.january</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></strong></code>
+<div class="block">Exception associated with metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a> in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that throw <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="strong">IDatasetConnector.</span><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect()">connect</a></strong>()</code>
+<div class="block">Same as calling connect(500, TimeUnit.MILLISECOND)
+ 
+ Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="strong">IDatasetConnector.</span><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect(long,%20java.util.concurrent.TimeUnit)">connect</a></strong>(long&nbsp;time,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
+<div class="block">Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IDatasetConnector.</span><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#disconnect()">disconnect</a></strong>()</code>
+<div class="block">Stops listening to the dataset changing and disconnects from the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#max(org.eclipse.january.dataset.ILazyDataset,%20int...)">max</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean(org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean(int,%20int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(int&nbsp;start,
+        int&nbsp;stop,
+        <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#min(org.eclipse.january.dataset.ILazyDataset,%20int...)">min</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#product(org.eclipse.january.dataset.ILazyDataset,%20int)">product</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+              int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset synchronously</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset(org.eclipse.january.dataset.ILazyDataset)">sliceAndConvertLazyDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazy)</code>
+<div class="block">Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and
+ convert to our dataset implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20boolean,%20int...)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      boolean&nbsp;ignore,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int...)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/DatasetException.html" target="_top">Frames</a></li>
+<li><a href="DatasetException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/class-use/IMonitor.Stub.html b/apidocs/2.1.1/org/eclipse/january/class-use/IMonitor.Stub.html
new file mode 100644
index 0000000..88341cb
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/class-use/IMonitor.Stub.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.IMonitor.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.IMonitor.Stub (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/IMonitor.Stub.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.IMonitor.Stub" class="title">Uses of Class<br>org.eclipse.january.IMonitor.Stub</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.IMonitor.Stub</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/IMonitor.Stub.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/class-use/IMonitor.html b/apidocs/2.1.1/org/eclipse/january/class-use/IMonitor.html
new file mode 100644
index 0000000..00214dd
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/class-use/IMonitor.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.IMonitor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.IMonitor (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/IMonitor.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.IMonitor" class="title">Uses of Interface<br>org.eclipse.january.IMonitor</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january">org.eclipse.january</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a> in <a href="../../../../org/eclipse/january/package-summary.html">org.eclipse.january</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/package-summary.html">org.eclipse.january</a> that implement <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a> in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset synchronously</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a> in <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> with parameters of type <a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyLoader.</span><code><strong><a href="../../../../org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                    <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IMetaLoader.</span><code><strong><a href="../../../../org/eclipse/january/io/IMetaLoader.html#loadMetadata(org.eclipse.january.IMonitor)">loadMetadata</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon)</code>
+<div class="block">Loads the meta data from the file but not all the data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazySaver.</span><code><strong><a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyAsyncSaver.</span><code><strong><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceAsync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                          <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Non-blocking version of <a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/IMonitor.html" target="_top">Frames</a></li>
+<li><a href="IMonitor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/class-use/INameable.html b/apidocs/2.1.1/org/eclipse/january/class-use/INameable.html
new file mode 100644
index 0000000..44f47ed
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/class-use/INameable.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.INameable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.INameable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/INameable.html" target="_top">Frames</a></li>
+<li><a href="INameable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.INameable" class="title">Uses of Interface<br>org.eclipse.january.INameable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a> in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a> in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></strong></code>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></strong></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></strong></code>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></strong></code>
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></strong></code>
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></strong></code>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></strong></code>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></strong></code>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></strong></code>
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/INameable.html" target="_top">Frames</a></li>
+<li><a href="INameable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/class-use/MetadataException.html b/apidocs/2.1.1/org/eclipse/january/class-use/MetadataException.html
new file mode 100644
index 0000000..76e94bf
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/class-use/MetadataException.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.MetadataException (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.MetadataException (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/MetadataException.html" target="_top">Frames</a></li>
+<li><a href="MetadataException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.MetadataException" class="title">Uses of Class<br>org.eclipse.january.MetadataException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a> in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that throw <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;</code></td>
+<td class="colLast"><span class="strong">IMetadataProvider.</span><code><strong><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a> in <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that throw <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">MetadataFactory.</span><code><strong><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html#createMetadata(java.lang.Class,%20java.lang.Object...)">createMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)</code>
+<div class="block">Create a metadata object of given class with given arguments</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="strong">Metadata.</span><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaNames()">getMetaNames</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="strong">IMetadata.</span><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames()">getMetaNames</a></strong>()</code>
+<div class="block">Returns a collection of metadata names</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><span class="strong">Metadata.</span><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaValue(java.lang.String)">getMetaValue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><span class="strong">IMetadata.</span><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue(java.lang.String)">getMetaValue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Returns string value or null if not implemented</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/class-use/MetadataException.html" target="_top">Frames</a></li>
+<li><a href="MetadataException.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/AbstractCompoundDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/AbstractCompoundDataset.html
new file mode 100644
index 0000000..0c24c81
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/AbstractCompoundDataset.html
@@ -0,0 +1,2896 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractCompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="AbstractCompoundDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractCompoundDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/AbstractCompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractCompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class AbstractCompoundDataset" class="title">Class AbstractCompoundDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.AbstractCompoundDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.30">AbstractCompoundDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>
+implements <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></pre>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.AbstractCompoundDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#AbstractCompoundDataset()">AbstractCompoundDataset</a></strong>()</code>
+<div class="block">Constructor required for serialisation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a></strong>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a></strong>(int[]&nbsp;n)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;double[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a></strong>(double[]&nbsp;darray)</code>
+<div class="block">Get first item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a></strong>(double[]&nbsp;darray,
+                            int...&nbsp;pos)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a></strong>(double[]&nbsp;darray,
+                            int&nbsp;i)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a></strong>(double[]&nbsp;darray,
+                            int&nbsp;i,
+                            int&nbsp;j)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the error for a given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the error values for a single point in the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a></strong>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a></strong>(int&nbsp;element)</code>
+<div class="block">Get an iterator that picks out the chosen element from all items</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place floor division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a></strong>()</code>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a></strong>()</code>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a></strong>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnd)</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a></strong>(boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.CompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray()">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int...)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int,%20int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray()">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">getElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">getElementsView</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray()">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int...)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int,%20int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray()">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int...)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int,%20int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray()">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int...)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int,%20int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray()">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int...)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int,%20int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd(java.lang.Object)">iadd</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide(java.lang.Object)">idivide</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply(java.lang.Object)">imultiply</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower(java.lang.Object)">ipower</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder(java.lang.Object)">iremainder</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract(java.lang.Object)">isubtract</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="isize">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isize</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.34">isize</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractCompoundDataset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.111">AbstractCompoundDataset</a>()</pre>
+<div class="block">Constructor required for serialisation.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getElementsPerItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.37">getElementsPerItem</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Number of elements per item</dd></dl>
+</li>
+</ul>
+<a name="get1DIndex(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndex</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.42">get1DIndex</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the data array corresponding to that location</dd></dl>
+</li>
+</ul>
+<a name="get1DIndex(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndex</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.48">get1DIndex</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the data array corresponding to that location</dd></dl>
+</li>
+</ul>
+<a name="get1DIndexFromShape(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndexFromShape</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.54">get1DIndexFromShape</a>(int[]&nbsp;n)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.59">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getIterator(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.64">getIterator</a>(boolean&nbsp;withPosition)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>withPosition</code> - set true if position is needed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an IndexIterator tailored for this dataset</dd></dl>
+</li>
+</ul>
+<a name="getIterator(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.78">getIterator</a>(int&nbsp;element)</pre>
+<div class="block">Get an iterator that picks out the chosen element from all items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an iterator</dd></dl>
+</li>
+</ul>
+<a name="getSliceIterator(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.97">getSliceIterator</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an slice iterator that operates like an IndexIterator</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.115">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.125">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="cast(boolean, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.130">cast</a>(boolean&nbsp;repeat,
+                   int&nbsp;dtype,
+                   int&nbsp;isize)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast(boolean,%20int,%20int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>dtype</code> - dataset type</dd><dd><code>isize</code> - item size</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.135">cast</a>(int&nbsp;dtype)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast(int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.140">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="flatten()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flatten</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.143">flatten</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">Dataset</a></code></strong></div>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#flatten()">flatten</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a flattened dataset which is a view if dataset is contiguous otherwise is a copy</dd></dl>
+</li>
+</ul>
+<a name="getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.148">getBy1DIndex</a>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by indices</dd></dl>
+</li>
+</ul>
+<a name="getByBoolean(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.153">getByBoolean</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset</dd></dl>
+</li>
+</ul>
+<a name="getByIndexes(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.158">getByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by index</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.163">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                       int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.168">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.173">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                       <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.178">getSlice</a>(int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.183">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.188">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.193">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>iterator</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.196">getSliceView</a>(int[]&nbsp;start,
+                           int[]&nbsp;stop,
+                           int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.201">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.206">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="strong">Returns:</span></dt><dd>slice view</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.211">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">IDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.216">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getBroadcastView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBroadcastView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.219">getBroadcastView</a>(int...&nbsp;broadcastShape)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of dataset that is broadcasted to given shape</dd></dl>
+</li>
+</ul>
+<a name="ifloorDivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloorDivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.224">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place floor division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="reshape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reshape</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.229">reshape</a>(int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">Dataset</a></code></strong></div>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#reshape(int...)">reshape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - new shape</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.234">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>start</code> - specifies the starting indexes</dd><dd><code>stop</code> - specifies the stopping indexes (nb, these are <b>not</b> included in the slice)</dd><dd><code>step</code> - specifies the steps in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.239">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.244">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sort(java.lang.Integer)">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.249">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.254">squeeze</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.259">squeeze</a>(boolean&nbsp;onlyFromEnd)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="swapAxes(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swapAxes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.264">swapAxes</a>(int&nbsp;axis1,
+                       int&nbsp;axis2)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#swapAxes(int,%20int)">swapAxes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>swapped view of dataset</dd></dl>
+</li>
+</ul>
+<a name="synchronizedCopy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>synchronizedCopy</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.269">synchronizedCopy</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">Dataset</a></code></strong></div>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#synchronizedCopy()">synchronizedCopy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="transpose(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transpose</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.274">transpose</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">Dataset</a></code></strong></div>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#transpose(int...)">transpose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped copy of data</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected abstract&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.281">getFirstValue</a>()</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected abstract&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.283">getFirstValue</a>(int&nbsp;i)</pre>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected abstract&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.285">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected abstract&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.287">getFirstValue</a>(int...&nbsp;pos)</pre>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.290">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.295">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.300">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.305">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.310">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.315">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.320">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.325">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.330">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.335">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.340">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.345">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.350">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.355">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.360">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.365">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.370">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.375">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.380">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.385">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.390">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.395">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.400">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.405">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.410">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.415">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.420">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.425">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.430">getDoubleArray</a>(double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get first item as a double array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.435">getDoubleArray</a>(double[]&nbsp;darray,
+                  int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.440">getDoubleArray</a>(double[]&nbsp;darray,
+                  int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.445">getDoubleArray</a>(double[]&nbsp;darray,
+                  int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int...)">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getCompoundStats()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCompoundStats</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;double[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.453">getCompoundStats</a>()</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="argMax(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMax</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.464">argMax</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Find indices of maximum values along given axis</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>index dataset</dd></dl>
+</li>
+</ul>
+<a name="argMin(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMin</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.470">argMin</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Find indices of minimum values along given axis</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>index dataset</dd></dl>
+</li>
+</ul>
+<a name="max(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.476">max</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Maximum value</dd></dl>
+</li>
+</ul>
+<a name="max(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.482">max</a>(int&nbsp;axis,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#max(int,%20boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>maxima along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="min(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.488">min</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Minimum value</dd></dl>
+</li>
+</ul>
+<a name="min(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.494">min</a>(int&nbsp;axis,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#min(int,%20boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>minima along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.501">maxPos</a>(boolean...&nbsp;ignoreNaNs)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreNaNs</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.507">minPos</a>(boolean...&nbsp;ignoreNaNs)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreNaNs</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="peakToPeak(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peakToPeak</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.513">peakToPeak</a>(int&nbsp;axis,
+                         boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd></dl>
+</li>
+</ul>
+<a name="maxItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxItem</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.519">maxItem</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#maxItem()">CompoundDataset</a></code></strong></div>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#maxItem()">maxItem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>double array of element-wise maxima</dd></dl>
+</li>
+</ul>
+<a name="minItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minItem</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.524">minItem</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#minItem()">CompoundDataset</a></code></strong></div>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#minItem()">minItem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>double array of element-wise minima</dd></dl>
+</li>
+</ul>
+<a name="mean(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.529">mean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean of all items in dataset as a double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="mean(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.534">mean</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#mean(int,%20boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="product(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.539">product</a>(int&nbsp;axis,
+                      boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#product(int,%20boolean...)">product</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.544">rootMeanSquare</a>(int&nbsp;axis,
+                             boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.549">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.554">stdDeviation</a>(int&nbsp;axis,
+                           boolean&nbsp;isWholePopulation,
+                           boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="sum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.559">sum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum over all items in dataset as a Double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="sum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.564">sum</a>(int&nbsp;axis,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sum(int,%20boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="variance(boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.569">variance</a>(boolean&nbsp;isWholePopulation,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:
+ 
+ <pre>
+    sum((x_i - m)^2)/N
+ where {x_i} are set of N population values and m is the mean
+    m = sum(x_i)/N
+ </pre>
+ 
+ Otherwise, if the dataset is a set of samples (with replacement) from the population then
+ 
+ <pre>
+    sum((x_i - m)^2)/(N-1)
+ where {x_i} are set of N sample values and m is the unbiased estimate of the mean
+    m = sum(x_i)/N
+ </pre>
+ 
+ Note that the second definition is also the unbiased estimator of population variance.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance</dd></dl>
+</li>
+</ul>
+<a name="variance(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.574">variance</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance(int)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.579">variance</a>(int&nbsp;axis,
+                       boolean&nbsp;isWholePopulation,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.584">rootMeanSquare</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.625">getErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">ILazyDataset</a></code></strong></div>
+<div class="block">Get the errors, if any. These will be in a shape that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the dataset which contains the error information (can be null)</dd></dl>
+</li>
+</ul>
+<a name="getError(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.634">getError</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">Dataset</a></code></strong></div>
+<div class="block">Get the error for given position. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getError(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.639">getError</a>(int&nbsp;i,
+              int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get the error for given position. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getError(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.644">getError</a>(int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">IDataset</a></code></strong></div>
+<div class="block">Get the error for a given position.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.662">getErrorArray</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">Dataset</a></code></strong></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.667">getErrorArray</a>(int&nbsp;i,
+                     int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html#line.672">getErrorArray</a>(int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">IDataset</a></code></strong></div>
+<div class="block">Get the error values for a single point in the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - of the point to be referenced</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractCompoundDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/AbstractCompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractCompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/AbstractDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/AbstractDataset.html
new file mode 100644
index 0000000..8d168d8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/AbstractDataset.html
@@ -0,0 +1,3359 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="AbstractDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/AbstractDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class AbstractDataset" class="title">Class AbstractDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.AbstractDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.42">AbstractDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>
+implements <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></pre>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.AbstractDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static char</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static char</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a></strong></code>
+<div class="block">The data itself, held in a 1D array, but the object will wrap it to appear as possessing as many dimensions as
+ wanted</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#AbstractDataset()">AbstractDataset</a></strong>()</code>
+<div class="block">Constructor required for serialisation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a></strong>()</code>
+<div class="block">Test if all items are true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a></strong>()</code>
+<div class="block">Test if any items are true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a></strong>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a></strong>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a></strong>(double&nbsp;start,
+                  double&nbsp;stop,
+                  double&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a></strong>(int&nbsp;axis)</code>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a></strong>(int&nbsp;rank,
+                  int&nbsp;axis)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;orig,
+                    <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;view,
+                    boolean&nbsp;clone,
+                    boolean&nbsp;cloneMetadata)</code>
+<div class="block">Copy fields from original to view</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a></strong>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a></strong>(int&nbsp;isize,
+                          int[]&nbsp;shape,
+                          int[]&nbsp;oStride,
+                          int&nbsp;oOffset,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int[]&nbsp;stride,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from slice information and a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                          int&nbsp;isize,
+                          int[]&nbsp;shape,
+                          int[]&nbsp;oStride,
+                          int&nbsp;oOffset,
+                          int[]&nbsp;stride,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from slice and dataset information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int&nbsp;depth,
+                int[]&nbsp;pos)</code>
+<div class="block">Fill dataset from object at depth dimension</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a></strong>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a></strong>(int...&nbsp;n)</code>
+<div class="block">This method calculates the index in the data array that corresponds to
+ the given n-dimensional position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a></strong>(int[]&nbsp;n)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a></strong>(int[]&nbsp;shape,
+                                      int[]&nbsp;n)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                    boolean&nbsp;value)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a></strong>()</code>
+<div class="block">Get the error for the first item.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the error for a given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the error values for a single point in the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a></strong>()</code>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a></strong>()</code>
+<div class="block">Generate an index dataset for current dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a></strong>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a></strong>(int&nbsp;n)</code>
+<div class="block">This method calculates the n-dimensional position in the dataset of
+ the given index in the data array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a></strong>()</code>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a></strong>()</code>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a></strong>()</code>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets and null for null datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a></strong>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a></strong>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a></strong>(int[]&nbsp;pos,
+                                                boolean[]&nbsp;axes)</code>
+<div class="block">Get a slice iterator that is defined by a starting position and a set of axes to include</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place floor division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer,
+                                int...&nbsp;shape)</code>
+<div class="block">Set the buffer that backs the dataset and its shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer)</code>
+<div class="block">Set a copy of the buffer that backs the (squared) error data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a></strong>(int&nbsp;maxLineLength)</code>
+<div class="block">Set maximum line length for toString() method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a>&nbsp;format)</code>
+<div class="block">Set string output format</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a></strong>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnds)</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a></strong>()</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a></strong>(boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a></strong>(boolean&nbsp;showData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a></strong>(boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="size">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.46">size</a></pre>
+</li>
+</ul>
+<a name="base">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>base</h4>
+<pre>protected transient&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.48">base</a></pre>
+</li>
+</ul>
+<a name="stride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.49">stride</a></pre>
+</li>
+</ul>
+<a name="offset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>offset</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.50">offset</a></pre>
+</li>
+</ul>
+<a name="odata">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>odata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a> <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.56">odata</a></pre>
+<div class="block">The data itself, held in a 1D array, but the object will wrap it to appear as possessing as many dimensions as
+ wanted</div>
+</li>
+</ul>
+<a name="stringFormat">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stringFormat</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a> <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.108">stringFormat</a></pre>
+</li>
+</ul>
+<a name="BLOCK_OPEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BLOCK_OPEN</h4>
+<pre>protected static final&nbsp;char <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1085">BLOCK_OPEN</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.AbstractDataset.BLOCK_OPEN">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="BLOCK_CLOSE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BLOCK_CLOSE</h4>
+<pre>protected static final&nbsp;char <a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1086">BLOCK_CLOSE</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.AbstractDataset.BLOCK_CLOSE">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractDataset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.66">AbstractDataset</a>()</pre>
+<div class="block">Constructor required for serialisation.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.61">setData</a>()</pre>
+<div class="block">Set aliased data as base data</div>
+</li>
+</ul>
+<a name="synchronizedCopy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>synchronizedCopy</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.70">synchronizedCopy</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">Dataset</a></code></strong></div>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.75">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.101">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.106">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="setStringFormat(java.text.Format)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStringFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.111">setStringFormat</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a>&nbsp;format)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">IDataset</a></code></strong></div>
+<div class="block">Set string output format</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="copy(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.116">copy</a>(int&nbsp;dtype)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">Dataset</a></code></strong></div>
+<div class="block">Copy and cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted copy of the dataset</dd></dl>
+</li>
+</ul>
+<a name="copy(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.124">copy</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">Dataset</a></code></strong></div>
+<div class="block">Copy and cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted copy of the dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.129">cast</a>(int&nbsp;dtype)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.137">cast</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(boolean, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.142">cast</a>(boolean&nbsp;repeat,
+           int&nbsp;dtype,
+           int&nbsp;isize)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>dtype</code> - dataset type</dd><dd><code>isize</code> - item size</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.150">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="copyToView(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.AbstractDataset, boolean, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyToView</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.159">copyToView</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;orig,
+              <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;view,
+              boolean&nbsp;clone,
+              boolean&nbsp;cloneMetadata)</pre>
+<div class="block">Copy fields from original to view</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>orig</code> - </dd><dd><code>view</code> - </dd><dd><code>clone</code> - if true, then clone everything but bulk data</dd><dd><code>cloneMetadata</code> - if true, clone metadata</dd></dl>
+</li>
+</ul>
+<a name="getMetadataMap(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadataMap</h4>
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.186">getMetadataMap</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                             boolean&nbsp;clone)</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getIndices()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIndices</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.218">getIndices</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">Dataset</a></code></strong></div>
+<div class="block">Generate an index dataset for current dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>an index dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.227">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">IDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="transpose(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transpose</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.254">transpose</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">Dataset</a></code></strong></div>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped copy of data</dd></dl>
+</li>
+</ul>
+<a name="swapAxes(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swapAxes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.260">swapAxes</a>(int&nbsp;axis1,
+               int&nbsp;axis2)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>swapped view of dataset</dd></dl>
+</li>
+</ul>
+<a name="flatten()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flatten</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.298">flatten</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">Dataset</a></code></strong></div>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a flattened dataset which is a view if dataset is contiguous otherwise is a copy</dd></dl>
+</li>
+</ul>
+<a name="fillData(java.lang.Object, int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.311">fillData</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+            int&nbsp;depth,
+            int[]&nbsp;pos)</pre>
+<div class="block">Fill dataset from object at depth dimension</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dd><code>depth</code> - </dd><dd><code>pos</code> - position</dd></dl>
+</li>
+</ul>
+<a name="getIterator(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.359">getIterator</a>(boolean&nbsp;withPosition)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>withPosition</code> - set true if position is needed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an IndexIterator tailored for this dataset</dd></dl>
+</li>
+</ul>
+<a name="getIterator()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.372">getIterator</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>an IndexIterator tailored for this dataset</dd></dl>
+</li>
+</ul>
+<a name="getPositionIterator(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.377">getPositionIterator</a>(int...&nbsp;axes)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - axes to omit from iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a PositionIterator that misses out axes</dd></dl>
+</li>
+</ul>
+<a name="getSliceIterator(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.382">getSliceIterator</a>(int[]&nbsp;start,
+                             int[]&nbsp;stop,
+                             int[]&nbsp;step)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes</dd><dd><code>stop</code> - specifies the stopping indexes (nb, these are <b>not</b> included in the slice)</dd><dd><code>step</code> - specifies the steps in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an slice iterator that operates like an IndexIterator</dd></dl>
+</li>
+</ul>
+<a name="getSliceIterator(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.390">getSliceIterator</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an slice iterator that operates like an IndexIterator</dd></dl>
+</li>
+</ul>
+<a name="getSliceIteratorFromAxes(int[], boolean[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIteratorFromAxes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.401">getSliceIteratorFromAxes</a>(int[]&nbsp;pos,
+                                     boolean[]&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">Dataset</a></code></strong></div>
+<div class="block">Get a slice iterator that is defined by a starting position and a set of axes to include</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>axes</code> - to include</dd>
+<dt><span class="strong">Returns:</span></dt><dd>slice iterator</dd></dl>
+</li>
+</ul>
+<a name="getBooleanIterator(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBooleanIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.433">getBooleanIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>an iterator of dataset that visits items chosen by given choice dataset</dd></dl>
+</li>
+</ul>
+<a name="getBooleanIterator(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBooleanIterator</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.438">getBooleanIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                 boolean&nbsp;value)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>an iterator of dataset that visits items chosen by given choice dataset</dd></dl>
+</li>
+</ul>
+<a name="getByBoolean(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.443">getByBoolean</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset</dd></dl>
+</li>
+</ul>
+<a name="getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.460">getBy1DIndex</a>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by indices</dd></dl>
+</li>
+</ul>
+<a name="getByIndexes(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.474">getByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by index</dd></dl>
+</li>
+</ul>
+<a name="getElementClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.489">getElementClass</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Boxed class of element</dd></dl>
+</li>
+</ul>
+<a name="hasFloatingPointElements()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasFloatingPointElements</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.494">hasFloatingPointElements</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset has elements which are floating point values</dd></dl>
+</li>
+</ul>
+<a name="getElementsPerItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.500">getElementsPerItem</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Number of elements per item</dd></dl>
+</li>
+</ul>
+<a name="getItemBytes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getItemBytes</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.505">getItemBytes</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Size of an item in dataset in bytes</dd></dl>
+</li>
+</ul>
+<a name="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.510">getName</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the name</dd></dl>
+</li>
+</ul>
+<a name="setName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.515">setName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.520">getSize</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">ILazyDataset</a></code></strong></div>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of data items</dd></dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.525">getShape</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">ILazyDataset</a></code></strong></div>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Copy of shape of dataset</dd></dl>
+</li>
+</ul>
+<a name="getRank()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRank</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.535">getRank</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">ILazyDataset</a></code></strong></div>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>rank</dd></dl>
+</li>
+</ul>
+<a name="getNbytes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNbytes</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.540">getNbytes</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of bytes used</dd></dl>
+</li>
+</ul>
+<a name="setShape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setShape</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.575">setShape</a>(int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">ILazyDataset</a></code></strong></div>
+<div class="block">Set a compatible shape for dataset. A shape is compatible if it has the capacity to contain
+ the same number of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShapeRef()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShapeRef</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.688">getShapeRef</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">Dataset</a></code></strong></div>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets and null for null datasets</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>reference of shape of dataset</dd></dl>
+</li>
+</ul>
+<a name="getOffset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOffset</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.693">getOffset</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>offset where dataset view begins</dd></dl>
+</li>
+</ul>
+<a name="getStrides()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStrides</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.698">getStrides</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a stride array (can be null)</dd></dl>
+</li>
+</ul>
+<a name="getBuffer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBuffer</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.703">getBuffer</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the buffer that backs the dataset</dd></dl>
+</li>
+</ul>
+<a name="overrideInternal(java.io.Serializable, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>overrideInternal</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.708">overrideInternal</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer,
+                    int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">Dataset</a></code></strong></div>
+<div class="block">Set the buffer that backs the dataset and its shape
+ <p>This is very, very <b>dangerous</b>. Please use carefully</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>buffer</code> - (can be null to leave unchanged)</dd><dd><code>shape</code> - (can be null to leave unchanged)</dd></dl>
+</li>
+</ul>
+<a name="createStrides(org.eclipse.january.dataset.Dataset, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createStrides</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.727">createStrides</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  int[]&nbsp;offset)</pre>
+<div class="block">Create a stride array from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>offset</code> - output offset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new strides</dd></dl>
+</li>
+</ul>
+<a name="createStrides(int, int[], int[], int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createStrides</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.740">createStrides</a>(int&nbsp;isize,
+                  int[]&nbsp;shape,
+                  int[]&nbsp;oStride,
+                  int&nbsp;oOffset,
+                  int[]&nbsp;offset)</pre>
+<div class="block">Create a stride array from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isize</code> - </dd><dd><code>shape</code> - </dd><dd><code>oStride</code> - original stride</dd><dd><code>oOffset</code> - original offset (only used if there is an original stride)</dd><dd><code>offset</code> - output offset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new strides</dd></dl>
+</li>
+</ul>
+<a name="createStrides(org.eclipse.january.dataset.SliceND, org.eclipse.january.dataset.Dataset, int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createStrides</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.766">createStrides</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  int[]&nbsp;stride,
+                  int[]&nbsp;offset)</pre>
+<div class="block">Create a stride array from slice information and a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd><dd><code>a</code> - dataset</dd><dd><code>stride</code> - output stride</dd><dd><code>offset</code> - output offset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new shape</dd></dl>
+</li>
+</ul>
+<a name="createStrides(org.eclipse.january.dataset.SliceND, int, int[], int[], int, int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createStrides</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.781">createStrides</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                  int&nbsp;isize,
+                  int[]&nbsp;shape,
+                  int[]&nbsp;oStride,
+                  int&nbsp;oOffset,
+                  int[]&nbsp;stride,
+                  int[]&nbsp;offset)</pre>
+<div class="block">Create a stride array from slice and dataset information</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd><dd><code>isize</code> - </dd><dd><code>shape</code> - </dd><dd><code>oStride</code> - original stride</dd><dd><code>oOffset</code> - original offset (only used if there is an original stride)</dd><dd><code>stride</code> - output stride</dd><dd><code>offset</code> - output offset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>new shape</dd></dl>
+</li>
+</ul>
+<a name="getBroadcastView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBroadcastView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.808">getBroadcastView</a>(int...&nbsp;broadcastShape)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of dataset that is broadcasted to given shape</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.828">getSliceView</a>(int[]&nbsp;start,
+                   int[]&nbsp;stop,
+                   int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.833">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.847">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>slice view</dd></dl>
+</li>
+</ul>
+<a name="getFirst1DIndex()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst1DIndex</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.892">getFirst1DIndex</a>()</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get1DIndex(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndex</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.900">get1DIndex</a>(int...&nbsp;n)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">Dataset</a></code></strong></div>
+<div class="block">This method calculates the index in the data array that corresponds to
+ the given n-dimensional position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the integer array specifying the n-D position</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the data array corresponding to that location</dd></dl>
+</li>
+</ul>
+<a name="get1DIndex(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndex</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.916">get1DIndex</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the data array corresponding to that location</dd></dl>
+</li>
+</ul>
+<a name="get1DIndex(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndex</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.938">get1DIndex</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the data array corresponding to that location</dd></dl>
+</li>
+</ul>
+<a name="get1DIndexFromShape(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndexFromShape</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.961">get1DIndexFromShape</a>(int[]&nbsp;n)</pre>
+</li>
+</ul>
+<a name="get1DIndexFromShape(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndexFromShape</h4>
+<pre>protected static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.965">get1DIndexFromShape</a>(int[]&nbsp;shape,
+                      int[]&nbsp;n)</pre>
+</li>
+</ul>
+<a name="getNDPosition(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNDPosition</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1024">getNDPosition</a>(int&nbsp;n)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">Dataset</a></code></strong></div>
+<div class="block">This method calculates the n-dimensional position in the dataset of
+ the given index in the data array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - The index in the array</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the corresponding [a,b,...,n] position in the dataset</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected abstract&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1043">getBufferLength</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="checkAxis(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkAxis</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1076">checkAxis</a>(int&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">Dataset</a></code></strong></div>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sanitized axis in range [0, rank)</dd></dl>
+</li>
+</ul>
+<a name="checkAxis(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkAxis</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+protected static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1081">checkAxis</a>(int&nbsp;rank,
+                       int&nbsp;axis)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1089">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="toString(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1121">toString</a>(boolean&nbsp;showData)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string representation</dd></dl>
+</li>
+</ul>
+<a name="setMaxLineLength(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxLineLength</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1152">setMaxLineLength</a>(int&nbsp;maxLineLength)</pre>
+<div class="block">Set maximum line length for toString() method</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxLineLength</code> - </dd></dl>
+</li>
+</ul>
+<a name="getMaxLineLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxLineLength</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1159">getMaxLineLength</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>maximum line length for toString() method</dd></dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1326">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1331">squeeze</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1336">squeeze</a>(boolean&nbsp;onlyFromEnds)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCompatibleWith</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1374">isCompatibleWith</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">Dataset</a></code></strong></div>
+<div class="block">This method takes a dataset and checks its shape against the current dataset. If they are
+ both of the same size, then this returns true otherwise it returns false.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if shapes are compatible</dd></dl>
+</li>
+</ul>
+<a name="checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkCompatibility</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1379">checkCompatibility</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)
+                        throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">Dataset</a></code></strong></div>
+<div class="block">This method takes a dataset and checks its shape against the current dataset. If they are
+ both of the same size, then this returns with no error, if there is a problem, then an error
+ is thrown.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - This will be thrown if there is a problem with the compatibility</dd></dl>
+</li>
+</ul>
+<a name="reshape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reshape</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1384">reshape</a>(int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">Dataset</a></code></strong></div>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - new shape</dd></dl>
+</li>
+</ul>
+<a name="calcSteps(double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcSteps</h4>
+<pre>protected static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1402">calcSteps</a>(double&nbsp;start,
+            double&nbsp;stop,
+            double&nbsp;step)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - </dd><dd><code>step</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of steps to take</dd></dl>
+</li>
+</ul>
+<a name="isComplex()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isComplex</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1407">isComplex</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset is complex</dd></dl>
+</li>
+</ul>
+<a name="getRealPart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealPart</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1413">getRealPart</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>real part of dataset (if necessary, as new dataset)</dd></dl>
+</li>
+</ul>
+<a name="getRealView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1418">getRealView</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>real part of dataset as a view</dd></dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1423">getSlice</a>(int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1428">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1433">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1438">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1443">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1453">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public abstract&nbsp;<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1468">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>iterator</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1472">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1490">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>start</code> - specifies the starting indexes</dd><dd><code>stop</code> - specifies the stopping indexes (nb, these are <b>not</b> included in the slice)</dd><dd><code>step</code> - specifies the steps in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1503">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="all()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>all</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1511">all</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">Dataset</a></code></strong></div>
+<div class="block">Test if all items are true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="all(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>all</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1516">all</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if all items along axis are true</dd></dl>
+</li>
+</ul>
+<a name="any()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>any</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1521">any</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">Dataset</a></code></strong></div>
+<div class="block">Test if any items are true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="any(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>any</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1526">any</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if any items along axis are true</dd></dl>
+</li>
+</ul>
+<a name="ifloorDivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloorDivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1531">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place floor division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1536">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1541">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+<a name="getStats()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStats</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1549">getStats</a>()</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getStringStats()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringStats</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1563">getStringStats</a>()</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="max(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1574">max</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Maximum value</dd></dl>
+</li>
+</ul>
+<a name="max(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1579">max</a>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>maxima along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="min(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1584">min</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Minimum value</dd></dl>
+</li>
+</ul>
+<a name="min(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1589">min</a>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>minima along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="argMax(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMax</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1594">argMax</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">Dataset</a></code></strong></div>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index</dd></dl>
+</li>
+</ul>
+<a name="argMax(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMax</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1602">argMax</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Find indices of maximum values along given axis</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>index dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="argMin(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMin</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1607">argMin</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">Dataset</a></code></strong></div>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index</dd></dl>
+</li>
+</ul>
+<a name="argMin(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMin</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1615">argMin</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Find indices of minimum values along given axis</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>index dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="peakToPeak(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peakToPeak</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1620">peakToPeak</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>peak-to-peak value, the difference of maximum and minimum of dataset</dd></dl>
+</li>
+</ul>
+<a name="peakToPeak(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peakToPeak</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1625">peakToPeak</a>(int&nbsp;axis,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd></dl>
+</li>
+</ul>
+<a name="count(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>count</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1631">count</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of items in dataset</dd></dl>
+</li>
+</ul>
+<a name="count(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>count</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1636">count</a>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of items along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="sum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1641">sum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum over all items in dataset as a Double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="sum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1646">sum</a>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="product(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1651">product</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product over all items in dataset</dd></dl>
+</li>
+</ul>
+<a name="product(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1656">product</a>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="mean(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1661">mean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean of all items in dataset as a double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="mean(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1666">mean</a>(int&nbsp;axis,
+           boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="variance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1671">variance</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance of whole dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1676">variance</a>(boolean&nbsp;isWholePopulation,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:
+ 
+ <pre>
+    sum((x_i - m)^2)/N
+ where {x_i} are set of N population values and m is the mean
+    m = sum(x_i)/N
+ </pre>
+ 
+ Otherwise, if the dataset is a set of samples (with replacement) from the population then
+ 
+ <pre>
+    sum((x_i - m)^2)/(N-1)
+ where {x_i} are set of N sample values and m is the unbiased estimate of the mean
+    m = sum(x_i)/N
+ </pre>
+ 
+ Note that the second definition is also the unbiased estimator of population variance.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance</dd></dl>
+</li>
+</ul>
+<a name="variance(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1681">variance</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1686">variance</a>(int&nbsp;axis,
+               boolean&nbsp;isWholePopulation,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1691">stdDeviation</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample standard deviation of all items in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1696">stdDeviation</a>(boolean&nbsp;isWholePopulation,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample standard deviation of all items in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>Dataset.variance(boolean, boolean...)</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1701">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1706">stdDeviation</a>(int&nbsp;axis,
+                   boolean&nbsp;isWholePopulation,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1711">rootMeanSquare</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square</dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1719">rootMeanSquare</a>(int&nbsp;axis,
+                     boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square along axis in dataset</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1735">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dindex</code> - </dd><dd><code>sindex</code> - </dd><dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1762">getErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">ILazyDataset</a></code></strong></div>
+<div class="block">Get the errors, if any. These will be in a shape that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the dataset which contains the error information (can be null)</dd></dl>
+</li>
+</ul>
+<a name="getError()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1771">getError</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">Dataset</a></code></strong></div>
+<div class="block">Get the error for the first item. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getError(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1780">getError</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">Dataset</a></code></strong></div>
+<div class="block">Get the error for given position. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getError(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1789">getError</a>(int&nbsp;i,
+              int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get the error for given position. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getError(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1798">getError</a>(int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">IDataset</a></code></strong></div>
+<div class="block">Get the error for a given position.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1807">getErrorArray</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">Dataset</a></code></strong></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1816">getErrorArray</a>(int&nbsp;i,
+                     int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get the error values for given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1825">getErrorArray</a>(int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">IDataset</a></code></strong></div>
+<div class="block">Get the error values for a single point in the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - of the point to be referenced</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="getInternalSquaredError()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInternalSquaredError</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1833">getInternalSquaredError</a>()</pre>
+</li>
+</ul>
+<a name="getErrorBuffer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorBuffer</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1839">getErrorBuffer</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">Dataset</a></code></strong></div>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the dataset which contains the (squared) error information (can be null)</dd></dl>
+</li>
+</ul>
+<a name="setErrorBuffer(java.io.Serializable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setErrorBuffer</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AbstractDataset.html#line.1867">setErrorBuffer</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer)</pre>
+<div class="block">Set a copy of the buffer that backs the (squared) error data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>buffer</code> - can be null, anything that can be used to create a DoubleDataset or CompoundDoubleDataset</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/AbstractDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/AggregateDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/AggregateDataset.html
new file mode 100644
index 0000000..4d8aef5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/AggregateDataset.html
@@ -0,0 +1,824 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AggregateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="AggregateDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AggregateDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/AggregateDataset.html" target="_top">Frames</a></li>
+<li><a href="AggregateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class AggregateDataset" class="title">Class AggregateDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.AggregateDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.26">AggregateDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>
+implements <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></pre>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.AggregateDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#base">base</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#AggregateDataset(boolean,%20org.eclipse.january.dataset.ILazyDataset...)">AggregateDataset</a></strong>(boolean&nbsp;extend,
+                                <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;datasets)</code>
+<div class="block">Create an aggregate dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[][]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#calcShapes(boolean,%20org.eclipse.january.dataset.ILazyDataset...)">calcShapes</a></strong>(boolean&nbsp;extend,
+                    <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;datasets)</code>
+<div class="block">Calculate (possibly extended) shapes from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getElementClass()">getElementClass</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getElementsPerItem()">getElementsPerItem</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSize()">getSize</a></strong>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#setErrors(java.io.Serializable)">setErrors</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</code>
+<div class="block">Set the errors.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#setShape(int...)">setShape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="base">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>base</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.39">base</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AggregateDataset(boolean, org.eclipse.january.dataset.ILazyDataset...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AggregateDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.104">AggregateDataset</a>(boolean&nbsp;extend,
+                <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;datasets)</pre>
+<div class="block">Create an aggregate dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>extend</code> - if true, extend rank by one</dd><dd><code>datasets</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="calcShapes(boolean, org.eclipse.january.dataset.ILazyDataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcShapes</h4>
+<pre>public static&nbsp;int[][]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.49">calcShapes</a>(boolean&nbsp;extend,
+                 <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;datasets)</pre>
+<div class="block">Calculate (possibly extended) shapes from given datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>extend</code> - if true, extend rank by one</dd><dd><code>datasets</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>array of shapes</dd></dl>
+</li>
+</ul>
+<a name="getElementClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.186">getElementClass</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Boxed class of element</dd></dl>
+</li>
+</ul>
+<a name="getElementsPerItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.191">getElementsPerItem</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Number of elements per item</dd></dl>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.196">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.201">getSize</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">ILazyDataset</a></code></strong></div>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of data items</dd></dl>
+</li>
+</ul>
+<a name="setShape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setShape</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.206">setShape</a>(int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">ILazyDataset</a></code></strong></div>
+<div class="block">Set a compatible shape for dataset. A shape is compatible if it has the capacity to contain
+ the same number of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.211">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.216">getSlice</a>(int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.221">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.226">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.276">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.281">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.286">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.291">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.296">getSliceView</a>(int[]&nbsp;start,
+                            int[]&nbsp;stop,
+                            int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.301">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.311">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">ILazyDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.316">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.321">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setErrors(java.io.Serializable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setErrors</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.345">setErrors</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">ILazyDataset</a></code></strong></div>
+<div class="block">Set the errors. It may be a single double, a double array or a
+ whole dataset that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>errors</code> - - may be null to remove the error set</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/AggregateDataset.html#line.350">getErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">ILazyDataset</a></code></strong></div>
+<div class="block">Get the errors, if any. These will be in a shape that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AggregateDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/AggregateDataset.html" target="_top">Frames</a></li>
+<li><a href="AggregateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BinaryOperation.Stub.html b/apidocs/2.1.1/org/eclipse/january/dataset/BinaryOperation.Stub.html
new file mode 100644
index 0000000..9bba05e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BinaryOperation.Stub.html
@@ -0,0 +1,383 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BinaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BinaryOperation.Stub (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BinaryOperation.Stub.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BinaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BinaryOperation.Stub" class="title">Class BinaryOperation.Stub</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BinaryOperation.Stub</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.63">BinaryOperation.Stub</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>toString(String, String)</code></a></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#BinaryOperation.Stub()">BinaryOperation.Stub</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>
+<div class="block">override this</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;string,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;string2)</code>
+<div class="block">override this</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BinaryOperation.Stub()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BinaryOperation.Stub</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.63">BinaryOperation.Stub</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.67">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.73">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.78">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.86">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<div class="block">override this</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html#line.93">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;string,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;string2)</pre>
+<div class="block">override this</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BinaryOperation.Stub.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BinaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BinaryOperation.html b/apidocs/2.1.1/org/eclipse/january/dataset/BinaryOperation.html
new file mode 100644
index 0000000..6da20aa
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BinaryOperation.html
@@ -0,0 +1,319 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BinaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BinaryOperation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BinaryOperation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BinaryOperation.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface BinaryOperation" class="title">Interface BinaryOperation</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a>, <a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a>, <a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.18">BinaryOperation</a>
+extends <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></pre>
+<div class="block">Interface to represent a binary operation for implementations over different output domains</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></strong></code>
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.25">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.32">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.39">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.48">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd><dd><code>ra</code> - </dd><dd><code>ia</code> - </dd><dd><code>rb</code> - </dd><dd><code>ib</code> - </dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BinaryOperation.html#line.56">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BinaryOperation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BinaryOperation.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BooleanBroadcastIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanBroadcastIterator.html
new file mode 100644
index 0000000..b0b75b5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanBroadcastIterator.html
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BooleanBroadcastIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanBroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanBroadcastIterator" class="title">Class BooleanBroadcastIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanBroadcastIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.20">BooleanBroadcastIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></pre>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#aDelta">aDelta</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#aShape">aShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#aStride">aStride</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#endrank">endrank</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#oDelta">oDelta</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#oStride">oStride</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#pos">pos</a></strong></code>
+<div class="block">position in dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#BooleanBroadcastIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanBroadcastIterator</a></strong>(boolean&nbsp;v,
+                                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#getFirstShape()">getFirstShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#getMaskShape()">getMaskShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice()">getChoice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput()">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape()">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="aShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.8">aShape</a></pre>
+</li>
+</ul>
+<a name="aStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.9">aStride</a></pre>
+</li>
+</ul>
+<a name="oStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.10">oStride</a></pre>
+</li>
+</ul>
+<a name="endrank">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endrank</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.12">endrank</a></pre>
+</li>
+</ul>
+<a name="pos">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pos</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.17">pos</a></pre>
+<div class="block">position in dataset</div>
+</li>
+</ul>
+<a name="aDelta">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.18">aDelta</a></pre>
+</li>
+</ul>
+<a name="oDelta">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>oDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.19">oDelta</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanBroadcastIterator(boolean, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanBroadcastIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.38">BooleanBroadcastIterator</a>(boolean&nbsp;v,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                        boolean&nbsp;createIfNull)</pre>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - boolean value</dd><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset</dd><dd><code>o</code> - output dataset, can be null</dd><dd><code>createIfNull</code> - if true create the output dataset if that is null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.96">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getFirstShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.142">getFirstShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of first broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="getMaskShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaskShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.149">getMaskShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of second broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html#line.154">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.40">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanBroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BooleanContiguousIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanContiguousIterator.html
new file mode 100644
index 0000000..f35ce00
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanContiguousIterator.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:22 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BooleanContiguousIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanContiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanContiguousIterator" class="title">Class BooleanContiguousIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanContiguousIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.16">BooleanContiguousIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></pre>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#BooleanContiguousIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanContiguousIterator</a></strong>(boolean&nbsp;v,
+                                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                  boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice()">getChoice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput()">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape()">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanContiguousIterator(boolean, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanContiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.29">BooleanContiguousIterator</a>(boolean&nbsp;v,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                         boolean&nbsp;createIfNull)</pre>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - boolean value</dd><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset</dd><dd><code>o</code> - output dataset, can be null</dd><dd><code>createIfNull</code> - if true create the output dataset if that is null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.49">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.69">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html#line.74">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanContiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BooleanDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanDataset.html
new file mode 100644
index 0000000..16da5cd
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanDataset.html
@@ -0,0 +1,1272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BooleanDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanDataset.html" target="_top">Frames</a></li>
+<li><a href="BooleanDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BooleanDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanDataset" class="title">Class BooleanDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.21">BooleanDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></pre>
+<div class="block">Extend boolean base dataset for boolean values</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.BooleanDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BooleanDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">OR</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">AND</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">XOR</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BooleanDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get()">get</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get(int...)">get</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get(int)">get</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get(int,%20int)">get</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setAbs(int,%20boolean)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#sort(java.lang.Integer)">sort</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.66">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.74">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.100">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.105">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.110">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementLongAbs(int)">getElementLongAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.115">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble()">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.120">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.125">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.130">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int...)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.135">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat()">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.140">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.145">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.150">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int...)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.155">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong()">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.160">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.165">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int,%20int)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.170">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int...)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.175">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt()">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.180">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.185">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int,%20int)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.190">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int...)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.195">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort()">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.200">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.205">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int,%20int)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.210">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int...)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.215">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte()">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.220">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.225">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int,%20int)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.230">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int...)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.235">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean()">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.240">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.245">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.250">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.255">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.261">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.274">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">OR</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.288">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">XOR</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.302">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">AND</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.313">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.318">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.324">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDataset.html#line.330">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></dd>
+<dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanDataset.html" target="_top">Frames</a></li>
+<li><a href="BooleanDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BooleanDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BooleanDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanDatasetBase.html
new file mode 100644
index 0000000..c8fb045
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanDatasetBase.html
@@ -0,0 +1,1977 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BooleanDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="BooleanDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanDatasetBase" class="title">Class BooleanDatasetBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanDatasetBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.29">BooleanDatasetBase</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.BooleanDatasetBase">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static boolean[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setAbs(int,%20boolean)">setAbs</a></strong>(int&nbsp;index,
+            boolean&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean)">setItem</a></strong>(boolean&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int...)">setItem</a></strong>(boolean&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int)">setItem</a></strong>(boolean&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItem(boolean,%20int,%20int)">setItem</a></strong>(boolean&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;boolean[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.33">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.36">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;boolean[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.40">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.55">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.157">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.179">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.184">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.225">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;boolean[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.240">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.245">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.252">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.267">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.272">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.277">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.282">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.287">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.292">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.306">setAbs</a>(int&nbsp;index,
+          boolean&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.312">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.319">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.331">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.339">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.348">get</a>(int&nbsp;i,
+          int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.356">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.361">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.366">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.371">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.376">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.381">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.386">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.391">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.396">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.401">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.406">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.411">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.416">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.421">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.426">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.431">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.436">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.441">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.446">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.451">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.456">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.461">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.466">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.471">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.476">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.481">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.486">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.491">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.496">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.501">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.506">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.511">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.516">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.521">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.526">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.531">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.536">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.546">setItem</a>(boolean&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(boolean, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.556">setItem</a>(boolean&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(boolean, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.567">setItem</a>(boolean&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(boolean, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.577">setItem</a>(boolean&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.582">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.587">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.592">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.597">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.606">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.630">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.635">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.652">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.664">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.676">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.704">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.731">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.770">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                          <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.810">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.829">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.860">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.876">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.892">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.897">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.902">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.907">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.912">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.917">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.922">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.927">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.932">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.937">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanDatasetBase.html#line.942">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="BooleanDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BooleanIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanIterator.html
new file mode 100644
index 0000000..8cd6dd5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanIterator.html
@@ -0,0 +1,627 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BooleanIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanIterator" class="title">Class BooleanIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.19">BooleanIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()"><code>IndexIterator.hasNext()</code></a> returns true. An optional third dataset can specify the output.
+ For speed, there are public members.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a></strong></code>
+<div class="block">Index in choice dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a></strong></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a></strong></code>
+<div class="block">Index in output dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BooleanIterator</a></strong>(boolean&nbsp;v,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(boolean&nbsp;v,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a></strong>(boolean&nbsp;v,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice()">getChoice</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput()">getOutput</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="value">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>value</h4>
+<pre>protected final&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.77">value</a></pre>
+</li>
+</ul>
+<a name="cIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.82">cIndex</a></pre>
+<div class="block">Index in choice dataset</div>
+</li>
+</ul>
+<a name="oIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.87">oIndex</a></pre>
+<div class="block">Index in output dataset</div>
+</li>
+</ul>
+<a name="oDataset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.92">oDataset</a></pre>
+<div class="block">Output dataset</div>
+</li>
+</ul>
+<a name="outputA">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outputA</h4>
+<pre>protected final&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.94">outputA</a></pre>
+</li>
+</ul>
+<a name="maxShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.96">maxShape</a></pre>
+</li>
+</ul>
+<a name="aStep">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStep</h4>
+<pre>protected final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.98">aStep</a></pre>
+</li>
+</ul>
+<a name="oStep">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStep</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.99">oStep</a></pre>
+</li>
+</ul>
+<a name="aMax">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aMax</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.100">aMax</a></pre>
+</li>
+</ul>
+<a name="aStart">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStart</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.101">aStart</a></pre>
+</li>
+</ul>
+<a name="oStart">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStart</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.101">oStart</a></pre>
+</li>
+</ul>
+<a name="aDataset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.103">aDataset</a></pre>
+</li>
+</ul>
+<a name="cDataset">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.104">cDataset</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanIterator(boolean, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanIterator</h4>
+<pre>protected&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.126">BooleanIterator</a>(boolean&nbsp;v,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - boolean value</dd><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset</dd><dd><code>o</code> - output dataset, can be null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.27">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset, can be null to choose all</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.38">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset, can be null to choose all</dd><dd><code>o</code> - output dataset, can be null</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createIterator(boolean, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.51">createIterator</a>(boolean&nbsp;v,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - boolean value</dd><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset, can be null to choose all</dd><dd><code>o</code> - output dataset, can be null</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createIterator(boolean, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.65">createIterator</a>(boolean&nbsp;v,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                             boolean&nbsp;createIfNull)</pre>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>v</code> - boolean value</dd><dd><code>a</code> - primary dataset</dd><dd><code>c</code> - choice dataset, can be null to choose all</dd><dd><code>o</code> - output dataset, can be null</dd><dd><code>createIfNull</code> - if true create the output dataset if that is null</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="getChoice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChoice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.110">getChoice</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>choice</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.115">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+<a name="getOutput()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getOutput</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIterator.html#line.151">getOutput</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>output dataset (can be null)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BooleanNullIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanNullIterator.html
new file mode 100644
index 0000000..04a8fe5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BooleanNullIterator.html
@@ -0,0 +1,508 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanNullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BooleanNullIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanNullIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BooleanNullIterator" class="title">Class BooleanNullIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BooleanNullIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.20">BooleanNullIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></pre>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#aDelta">aDelta</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#aShape">aShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#aStride">aStride</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#endrank">endrank</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#oDelta">oDelta</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#oStride">oStride</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#pos">pos</a></strong></code>
+<div class="block">position in dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aMax">aMax</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStart">aStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#aStep">aStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#cIndex">cIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStart">oStart</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#oStep">oStep</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#value">value</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BooleanNullIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanNullIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                      boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20boolean)">BooleanNullIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                      boolean&nbsp;createIfNull,
+                                      boolean&nbsp;allowInteger,
+                                      boolean&nbsp;allowComplex)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#getFirstShape()">getFirstShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BooleanIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice()">getChoice</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput()">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BooleanIterator.html#getShape()">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="aShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.8">aShape</a></pre>
+</li>
+</ul>
+<a name="aStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.9">aStride</a></pre>
+</li>
+</ul>
+<a name="oStride">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oStride</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.10">oStride</a></pre>
+</li>
+</ul>
+<a name="endrank">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endrank</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.12">endrank</a></pre>
+</li>
+</ul>
+<a name="pos">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pos</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.17">pos</a></pre>
+<div class="block">position in dataset</div>
+</li>
+</ul>
+<a name="aDelta">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.18">aDelta</a></pre>
+</li>
+</ul>
+<a name="oDelta">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>oDelta</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.19">oDelta</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanNullIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BooleanNullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.26">BooleanNullIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - (can be null for new dataset, or a)</dd></dl>
+</li>
+</ul>
+<a name="BooleanNullIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BooleanNullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.36">BooleanNullIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                   boolean&nbsp;createIfNull)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - (can be null for new dataset, or a)</dd><dd><code>createIfNull</code> - if true create the output dataset if that is null
+ (by default, can create float or complex datasets)</dd></dl>
+</li>
+</ul>
+<a name="BooleanNullIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean, boolean, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanNullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.48">BooleanNullIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                   boolean&nbsp;createIfNull,
+                   boolean&nbsp;allowInteger,
+                   boolean&nbsp;allowComplex)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - (can be null for new dataset, or a)</dd><dd><code>createIfNull</code> - if true create the output dataset if that is null</dd><dd><code>allowInteger</code> - if true, can create integer datasets</dd><dd><code>allowComplex</code> - if true, can create complex datasets</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.110">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanNullIterator.html#line.149">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.35">getFirstShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of first broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BooleanIteratorBase.html#line.40">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanNullIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastIterator.html
new file mode 100644
index 0000000..528be4c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastIterator.html
@@ -0,0 +1,493 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BroadcastIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BroadcastIterator" class="title">Class BroadcastIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIteratorBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BroadcastIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a>, <a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.17">BroadcastIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></pre>
+<div class="block">Base class for broadcast iterators of pairs with output. For speed, there are public members. Note, index is not updated</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aDouble">aDouble</a></strong></code>
+<div class="block">Current value in first dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aLong">aLong</a></strong></code>
+<div class="block">Current value in first dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a></strong></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oIndex">oIndex</a></strong></code>
+<div class="block">Index in output dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputA">outputA</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputB">outputB</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#BroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#getOutput()">getOutput</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#storeCurrentValues()">storeCurrentValues</a></strong>()</code>
+<div class="block">Read and store current values</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="oIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.39">oIndex</a></pre>
+<div class="block">Index in output dataset</div>
+</li>
+</ul>
+<a name="aDouble">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDouble</h4>
+<pre>public&nbsp;double <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.43">aDouble</a></pre>
+<div class="block">Current value in first dataset</div>
+</li>
+</ul>
+<a name="aLong">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aLong</h4>
+<pre>public&nbsp;long <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.47">aLong</a></pre>
+<div class="block">Current value in first dataset</div>
+</li>
+</ul>
+<a name="oDataset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.51">oDataset</a></pre>
+<div class="block">Output dataset</div>
+</li>
+</ul>
+<a name="outputA">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outputA</h4>
+<pre>protected final&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.53">outputA</a></pre>
+</li>
+</ul>
+<a name="outputB">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>outputB</h4>
+<pre>protected final&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.54">outputB</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BroadcastIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BroadcastIterator</h4>
+<pre>protected&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.56">BroadcastIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.19">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="createIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.23">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+</li>
+</ul>
+<a name="createIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.27">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                               boolean&nbsp;createIfNull)</pre>
+</li>
+</ul>
+<a name="getOutput()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutput</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.72">getOutput</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>output dataset (can be null)</dd></dl>
+</li>
+</ul>
+<a name="storeCurrentValues()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>storeCurrentValues</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIterator.html#line.77">storeCurrentValues</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues()">BroadcastIteratorBase</a></code></strong></div>
+<div class="block">Read and store current values</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues()">storeCurrentValues</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastIteratorBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastIteratorBase.html
new file mode 100644
index 0000000..5b2a025
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastIteratorBase.html
@@ -0,0 +1,520 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastIteratorBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BroadcastIteratorBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastIteratorBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastIteratorBase.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIteratorBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BroadcastIteratorBase" class="title">Class BroadcastIteratorBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BroadcastIteratorBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.15">BroadcastIteratorBase</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Base class for all broadcast iterators. For speed, there are public members. Note, index is not updated</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a></strong></code>
+<div class="block">Index in first dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a></strong></code>
+<div class="block">Current value in second dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a></strong></code>
+<div class="block">Index in second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a></strong></code>
+<div class="block">Current value in second dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a></strong></code>
+<div class="block">position in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#BroadcastIteratorBase(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastIteratorBase</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></strong>(boolean&nbsp;asDouble)</code>
+<div class="block">Set to output doubles</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues()">storeCurrentValues</a></strong>()</code>
+<div class="block">Read and store current values</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="aIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.20">aIndex</a></pre>
+<div class="block">Index in first dataset</div>
+</li>
+</ul>
+<a name="bIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.24">bIndex</a></pre>
+<div class="block">Index in second dataset</div>
+</li>
+</ul>
+<a name="bDouble">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bDouble</h4>
+<pre>public&nbsp;double <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.28">bDouble</a></pre>
+<div class="block">Current value in second dataset</div>
+</li>
+</ul>
+<a name="bLong">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bLong</h4>
+<pre>public&nbsp;long <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.32">bLong</a></pre>
+<div class="block">Current value in second dataset</div>
+</li>
+</ul>
+<a name="asDouble">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asDouble</h4>
+<pre>protected&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.34">asDouble</a></pre>
+</li>
+</ul>
+<a name="read">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>protected&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.35">read</a></pre>
+</li>
+</ul>
+<a name="maxShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.37">maxShape</a></pre>
+</li>
+</ul>
+<a name="pos">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pos</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.42">pos</a></pre>
+<div class="block">position in dataset</div>
+</li>
+</ul>
+<a name="aDataset">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.44">aDataset</a></pre>
+</li>
+</ul>
+<a name="bDataset">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>bDataset</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.45">bDataset</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BroadcastIteratorBase(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BroadcastIteratorBase</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.47">BroadcastIteratorBase</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.53">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.58">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="isOutputDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOutputDouble</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.65">isOutputDouble</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if output from iterator is double</dd></dl>
+</li>
+</ul>
+<a name="setOutputDouble(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOutputDouble</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.73">setOutputDouble</a>(boolean&nbsp;asDouble)</pre>
+<div class="block">Set to output doubles</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>asDouble</code> - </dd></dl>
+</li>
+</ul>
+<a name="storeCurrentValues()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>storeCurrentValues</h4>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html#line.83">storeCurrentValues</a>()</pre>
+<div class="block">Read and store current values</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastIteratorBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastIteratorBase.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIteratorBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastPairIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastPairIterator.html
new file mode 100644
index 0000000..727f31a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastPairIterator.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BroadcastPairIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastPairIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastPairIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BroadcastPairIterator" class="title">Class BroadcastPairIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIteratorBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BroadcastPairIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.22">BroadcastPairIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></pre>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aDouble">aDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aLong">aLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputB">outputB</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#BroadcastPairIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BroadcastPairIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                          boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#getFirstShape()">getFirstShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#getSecondShape()">getSecondShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#getOutput()">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#storeCurrentValues()">storeCurrentValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BroadcastPairIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BroadcastPairIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.44">BroadcastPairIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                     boolean&nbsp;createIfNull)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - (can be null for new dataset, a or b)</dd><dd><code>createIfNull</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.107">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getFirstShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.172">getFirstShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of first broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="getSecondShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecondShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.179">getSecondShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of second broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastPairIterator.html#line.184">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastPairIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastPairIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastSelfIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastSelfIterator.html
new file mode 100644
index 0000000..cb9fdf2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastSelfIterator.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastSelfIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BroadcastSelfIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastSelfIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastSelfIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSelfIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BroadcastSelfIterator" class="title">Class BroadcastSelfIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIteratorBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BroadcastSelfIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a>, <a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html#line.18">BroadcastSelfIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></pre>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.
+ For speed, there are public members. Note, index is not updated</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colLast" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#BroadcastSelfIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastSelfIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#storeCurrentValues()">storeCurrentValues</a></strong>()</code>
+<div class="block">Read and store current values</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a>, <a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BroadcastSelfIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BroadcastSelfIterator</h4>
+<pre>protected&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html#line.27">BroadcastSelfIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createIterator</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html#line.20">createIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="storeCurrentValues()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>storeCurrentValues</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html#line.35">storeCurrentValues</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues()">BroadcastIteratorBase</a></code></strong></div>
+<div class="block">Read and store current values</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#storeCurrentValues()">storeCurrentValues</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastSelfIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastSelfIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSelfIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastSingleIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastSingleIterator.html
new file mode 100644
index 0000000..2d62c2f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastSingleIterator.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BroadcastSingleIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastSingleIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BroadcastSingleIterator" class="title">Class BroadcastSingleIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIteratorBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastSelfIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BroadcastSingleIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.17">BroadcastSingleIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></pre>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#BroadcastSingleIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastSingleIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#getFirstShape()">getFirstShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#getSecondShape()">getSecondShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastSelfIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#storeCurrentValues()">storeCurrentValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BroadcastSingleIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BroadcastSingleIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.34">BroadcastSingleIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.67">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getFirstShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.110">getFirstShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of first broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="getSecondShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecondShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.117">getSecondShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of second broadcasted dataset</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html#line.122">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastSingleIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastUtils.html
new file mode 100644
index 0000000..de20b0f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/BroadcastUtils.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BroadcastUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="BroadcastUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastUtils.html" target="_top">Frames</a></li>
+<li><a href="BroadcastUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class BroadcastUtils" class="title">Class BroadcastUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.BroadcastUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public final class <a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.16">BroadcastUtils</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#BroadcastUtils()">BroadcastUtils</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapes(int[]...)">broadcastShapes</a></strong>(int[]...&nbsp;shapes)</code>
+<div class="block">Take in shapes and broadcast them to same rank</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#broadcastShapesToMax(int[],%20int[]...)">broadcastShapesToMax</a></strong>(int[]&nbsp;maxShape,
+                                        int[]...&nbsp;shapes)</code>
+<div class="block">Take in shapes and broadcast them to maximum shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[][]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#calculateBroadcastShapes(int[],%20int,%20int...)">calculateBroadcastShapes</a></strong>(int[]&nbsp;oldShape,
+                                                int&nbsp;size,
+                                                int...&nbsp;newShape)</code>
+<div class="block">Calculate shapes for broadcasting</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#convertAndBroadcast(java.lang.Object...)">convertAndBroadcast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block">Converts and broadcast all objects as datasets of same shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides(org.eclipse.january.dataset.Dataset,%20int[])">createBroadcastStrides</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                            int[]&nbsp;broadcastShape)</code>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides(int,%20int[],%20int[],%20int[])">createBroadcastStrides</a></strong>(int&nbsp;isize,
+                                            int[]&nbsp;oShape,
+                                            int[]&nbsp;oStride,
+                                            int[]&nbsp;broadcastShape)</code>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html#padShape(int[],%20int)">padShape</a></strong>(int[]&nbsp;shape,
+                int&nbsp;padding)</code>
+<div class="block">Pad shape by prefixing with ones</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BroadcastUtils()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BroadcastUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.16">BroadcastUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="calculateBroadcastShapes(int[], int, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calculateBroadcastShapes</h4>
+<pre>public static&nbsp;int[][]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.25">calculateBroadcastShapes</a>(int[]&nbsp;oldShape,
+                               int&nbsp;size,
+                               int...&nbsp;newShape)</pre>
+<div class="block">Calculate shapes for broadcasting</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>oldShape</code> - </dd><dd><code>size</code> - </dd><dd><code>newShape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>broadcasted shape and full new shape or null if it cannot be done</dd></dl>
+</li>
+</ul>
+<a name="padShape(int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>padShape</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.67">padShape</a>(int[]&nbsp;shape,
+             int&nbsp;padding)</pre>
+<div class="block">Pad shape by prefixing with ones</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>padding</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new shape or old shape if padding is zero</dd></dl>
+</li>
+</ul>
+<a name="broadcastShapes(int[]...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcastShapes</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.85">broadcastShapes</a>(int[]...&nbsp;shapes)</pre>
+<div class="block">Take in shapes and broadcast them to same rank</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shapes</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of broadcasted shapes plus the first entry is the maximum shape</dd></dl>
+</li>
+</ul>
+<a name="broadcastShapesToMax(int[], int[]...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcastShapesToMax</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.130">broadcastShapesToMax</a>(int[]&nbsp;maxShape,
+                               int[]...&nbsp;shapes)</pre>
+<div class="block">Take in shapes and broadcast them to maximum shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxShape</code> - </dd><dd><code>shapes</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of broadcasted shapes</dd></dl>
+</li>
+</ul>
+<a name="createBroadcastStrides(org.eclipse.january.dataset.Dataset, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBroadcastStrides</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.255">createBroadcastStrides</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                           int[]&nbsp;broadcastShape)</pre>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>broadcastShape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>stride array</dd></dl>
+</li>
+</ul>
+<a name="createBroadcastStrides(int, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBroadcastStrides</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.267">createBroadcastStrides</a>(int&nbsp;isize,
+                           int[]&nbsp;oShape,
+                           int[]&nbsp;oStride,
+                           int[]&nbsp;broadcastShape)</pre>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isize</code> - </dd><dd><code>oShape</code> - original shape</dd><dd><code>oStride</code> - original stride</dd><dd><code>broadcastShape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>stride array</dd></dl>
+</li>
+</ul>
+<a name="convertAndBroadcast(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>convertAndBroadcast</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/BroadcastUtils.html#line.302">convertAndBroadcast</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</pre>
+<div class="block">Converts and broadcast all objects as datasets of same shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>objects</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>all as broadcasted to same shape</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BroadcastUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/BroadcastUtils.html" target="_top">Frames</a></li>
+<li><a href="BroadcastUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ByteDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ByteDataset.html
new file mode 100644
index 0000000..3ceaf72
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ByteDataset.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ByteDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ByteDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ByteDataset.html" target="_top">Frames</a></li>
+<li><a href="ByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ByteDataset" class="title">Class ByteDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ByteDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.30">ByteDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.ByteDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setAbs(int,%20byte)">setAbs</a></strong>(int&nbsp;index,
+            byte&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem(byte)">setItem</a></strong>(byte&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem(byte,%20int...)">setItem</a></strong>(byte&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem(byte,%20int)">setItem</a></strong>(byte&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItem(byte,%20int,%20int)">setItem</a></strong>(byte&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ByteDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;byte[] <a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.34">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.37">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.41">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.56">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.180">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.185">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.251">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.266">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.271">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.278">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.293">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.298">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.303">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.308">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.313">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.318">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, byte)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.332">setAbs</a>(int&nbsp;index,
+          byte&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.338">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.345">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.357">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.365">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.374">get</a>(int&nbsp;i,
+       int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.382">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.387">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.392">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.397">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.402">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.407">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.412">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.417">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.422">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.427">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.432">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.437">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.442">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.447">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.452">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.457">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.462">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.467">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.472">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.477">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.482">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.487">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.492">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.497">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.502">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.507">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.512">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.517">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.522">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.527">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.532">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.537">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.542">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.547">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.552">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.557">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.562">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(byte)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.572">setItem</a>(byte&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(byte, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.582">setItem</a>(byte&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(byte, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.593">setItem</a>(byte&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(byte, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.603">setItem</a>(byte&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.608">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.613">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.618">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.623">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.632">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.656">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.683">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.700">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.712">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.724">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.752">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.779">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.818">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                   <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.858">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.877">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.908">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.926">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.944">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.949">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.954">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.959">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.994">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.1030">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.1065">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.1117">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.1122">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.1170">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ByteDataset.html#line.1238">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ByteDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ByteDataset.html" target="_top">Frames</a></li>
+<li><a href="ByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CollectionStats.html b/apidocs/2.1.1/org/eclipse/january/dataset/CollectionStats.html
new file mode 100644
index 0000000..d1e4a84
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CollectionStats.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CollectionStats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CollectionStats (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CollectionStats.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CollectionStats.html" target="_top">Frames</a></li>
+<li><a href="CollectionStats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CollectionStats" class="title">Class CollectionStats</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CollectionStats</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CollectionStats.html#line.23">CollectionStats</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Statistics of data set lists. Used for image processing.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/CollectionStats.html#CollectionStats()">CollectionStats</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CollectionStats.html#mean(java.util.List)">mean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)</code>
+<div class="block">Used to get a mean image from a set of images for instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CollectionStats.html#median(java.util.List)">median</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)</code>
+<div class="block">Used to get a median image from a set of images for instance.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CollectionStats()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CollectionStats</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CollectionStats.html#line.23">CollectionStats</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="mean(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CollectionStats.html#line.36">mean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)
+                    throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Used to get a mean image from a set of images for instance.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sets</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean data set of the same shape as those passed in.</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
+</li>
+</ul>
+<a name="median(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>median</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CollectionStats.html#line.53">median</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)
+                      throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Used to get a median image from a set of images for instance.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sets</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>median data set of the same shape as those passed in.</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CollectionStats.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CollectionStats.html" target="_top">Frames</a></li>
+<li><a href="CollectionStats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Comparisons.Monotonicity.html b/apidocs/2.1.1/org/eclipse/january/dataset/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..240b3f3
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Comparisons.Monotonicity.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Comparisons.Monotonicity (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Comparisons.Monotonicity (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Comparisons.Monotonicity.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Comparisons.Monotonicity.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.Monotonicity.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum_constant_summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum_constant_detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Enum Comparisons.Monotonicity" class="title">Enum Comparisons.Monotonicity</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Comparisons.Monotonicity</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1564">Comparisons.Monotonicity</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&gt;</pre>
+<div class="block">Enumeration of monotonicity. NaNs are ignored or considered not equal</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#ALL_EQUAL">ALL_EQUAL</a></strong></code>
+<div class="block">All equal: x_0 == x_1 == x_2 ...</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#NONDECREASING">NONDECREASING</a></strong></code>
+<div class="block">Non-decreasing or weakly increasing x_0 <= x_1 <= x_2 ...</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#NONINCREASING">NONINCREASING</a></strong></code>
+<div class="block">Non-increasing or weakly decreasing x_0 >= x_1 >= x_2 ...</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#NOT_ORDERED">NOT_ORDERED</a></strong></code>
+<div class="block">No order: x_0 != x_1 != x_2 ...</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#STRICTLY_DECREASING">STRICTLY_DECREASING</a></strong></code>
+<div class="block">Strictly decreasing x_0 > x_1 > x_2 ...</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#STRICTLY_INCREASING">STRICTLY_INCREASING</a></strong></code>
+<div class="block">Strictly increasing x_0 < x_1 < x_2 ...</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#valueOf(java.lang.String)">valueOf</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#values()">values</a></strong>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,%20java.lang.String)" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NOT_ORDERED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_ORDERED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1568">NOT_ORDERED</a></pre>
+<div class="block">No order: x_0 != x_1 != x_2 ...</div>
+</li>
+</ul>
+<a name="ALL_EQUAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ALL_EQUAL</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1572">ALL_EQUAL</a></pre>
+<div class="block">All equal: x_0 == x_1 == x_2 ...</div>
+</li>
+</ul>
+<a name="STRICTLY_DECREASING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>STRICTLY_DECREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1576">STRICTLY_DECREASING</a></pre>
+<div class="block">Strictly decreasing x_0 > x_1 > x_2 ...</div>
+</li>
+</ul>
+<a name="NONINCREASING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONINCREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1580">NONINCREASING</a></pre>
+<div class="block">Non-increasing or weakly decreasing x_0 >= x_1 >= x_2 ...</div>
+</li>
+</ul>
+<a name="NONDECREASING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONDECREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1584">NONDECREASING</a></pre>
+<div class="block">Non-decreasing or weakly increasing x_0 <= x_1 <= x_2 ...</div>
+</li>
+</ul>
+<a name="STRICTLY_INCREASING">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>STRICTLY_INCREASING</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1588">STRICTLY_INCREASING</a></pre>
+<div class="block">Strictly increasing x_0 < x_1 < x_2 ...</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1564">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (Comparisons.Monotonicity c : Comparisons.Monotonicity.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the constants of this enum type, in the order they are declared</dd></dl>
+</li>
+</ul>
+<a name="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html#line.1564">valueOf</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the enum constant with the specified name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Comparisons.Monotonicity.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Comparisons.Monotonicity.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.Monotonicity.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum_constant_summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum_constant_detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Comparisons.html b/apidocs/2.1.1/org/eclipse/january/dataset/Comparisons.html
new file mode 100644
index 0000000..7016906
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Comparisons.html
@@ -0,0 +1,1221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:23 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Comparisons (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Comparisons (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Comparisons.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Comparisons.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Comparisons" class="title">Class Comparisons</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Comparisons</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.21">Comparisons</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Comparison and logical methods</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></strong></code>
+<div class="block">Enumeration of monotonicity.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#Comparisons()">Comparisons</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#allCloseTo(java.lang.Object,%20java.lang.Object,%20double,%20double)">allCloseTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    double&nbsp;relTolerance,
+                    double&nbsp;absTolerance)</code>
+<div class="block">Compare item-wise for whether a's element is almost equal to b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#allTrue(org.eclipse.january.dataset.IDataset,%20int)">allTrue</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+              int&nbsp;axis)</code>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#allTrue(java.lang.Object)">allTrue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20double,%20double)">almostEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                          <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                          double&nbsp;relTolerance,
+                          double&nbsp;absTolerance)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20double,%20double)">almostEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                          double&nbsp;relTolerance,
+                          double&nbsp;absTolerance)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue(org.eclipse.january.dataset.IDataset,%20int)">anyTrue</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+              int&nbsp;axis)</code>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue(java.lang.Object)">anyTrue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object)">equalTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">equalTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity(java.lang.Object)">findMonotonicity</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Find monotonicity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object)">greaterThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object)">greaterThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                        <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isClose(double,%20double,%20double,%20double)">isClose</a></strong>(double&nbsp;a,
+              double&nbsp;b,
+              double&nbsp;relTol,
+              double&nbsp;absTol)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object)">isFinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isFinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object)">isInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isMonotonic(java.lang.Object)">isMonotonic</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isMonotonic(java.lang.Object,%20org.eclipse.january.dataset.Comparisons.Monotonicity)">isMonotonic</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;monotonicity)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object)">isNaN</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNaN</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object)">isNegativeInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNegativeInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                    <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object)">isPositiveInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isPositiveInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                    <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#isStrictlyMonotonic(java.lang.Object)">isStrictlyMonotonic</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object)">lessThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object)">lessThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                  <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object)">logicalAnd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalAnd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object)">logicalNot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Negate item-wise</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalNot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Negate item-wise</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object)">logicalOr</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalOr</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                  <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object)">logicalXor</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalXor</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#nonZero(org.eclipse.january.dataset.Dataset)">nonZero</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20java.lang.Number,%20java.lang.Number)">withinRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20java.lang.Number,%20java.lang.Number)">withinRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Comparisons()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Comparisons</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.21">Comparisons</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="equalTo(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equalTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.32">equalTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's element is equal b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a == b</dd></dl>
+</li>
+</ul>
+<a name="equalTo(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equalTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.47">equalTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                     <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's element is equal b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a == b</dd></dl>
+</li>
+</ul>
+<a name="almostEqualTo(java.lang.Object, java.lang.Object, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>almostEqualTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.156">almostEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                           double&nbsp;relTolerance,
+                           double&nbsp;absTolerance)</pre>
+<div class="block">Compare item-wise for whether a's element is equal b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>relTolerance</code> - </dd><dd><code>absTolerance</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if abs(a - b) <= absTol + relTol*max(abs(a),abs(b))</dd></dl>
+</li>
+</ul>
+<a name="isClose(double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClose</h4>
+<pre>public static final&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.168">isClose</a>(double&nbsp;a,
+              double&nbsp;b,
+              double&nbsp;relTol,
+              double&nbsp;absTol)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>relTol</code> - </dd><dd><code>absTol</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if abs(a - b) <= max(absTol, relTol*max(abs(a),abs(b)))</dd></dl>
+</li>
+</ul>
+<a name="almostEqualTo(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>almostEqualTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.194">almostEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                           <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                           double&nbsp;relTolerance,
+                           double&nbsp;absTolerance)</pre>
+<div class="block">Compare item-wise for whether a's element is equal b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd><dd><code>relTolerance</code> - </dd><dd><code>absTolerance</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if abs(a - b) <= absTol + relTol*max(abs(a),abs(b))</dd></dl>
+</li>
+</ul>
+<a name="greaterThan(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>greaterThan</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.274">greaterThan</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's element is greater than b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are greater. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a > b</dd></dl>
+</li>
+</ul>
+<a name="greaterThan(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>greaterThan</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.289">greaterThan</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                         <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's element is greater than b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are greater. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a > b</dd></dl>
+</li>
+</ul>
+<a name="greaterThanOrEqualTo(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>greaterThanOrEqualTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.384">greaterThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are greater or equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a >= b</dd></dl>
+</li>
+</ul>
+<a name="greaterThanOrEqualTo(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>greaterThanOrEqualTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.399">greaterThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                  <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are greater or equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a >= b</dd></dl>
+</li>
+</ul>
+<a name="lessThan(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lessThan</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.494">lessThan</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's element is less than b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are lesser. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a < b</dd></dl>
+</li>
+</ul>
+<a name="lessThan(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lessThan</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.509">lessThan</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's element is less than b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are lesser. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a < b</dd></dl>
+</li>
+</ul>
+<a name="lessThanOrEqualTo(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lessThanOrEqualTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.605">lessThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are lesser or equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a <= b</dd></dl>
+</li>
+</ul>
+<a name="lessThanOrEqualTo(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lessThanOrEqualTo</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.620">lessThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                               <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are lesser or equal. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a <= b</dd></dl>
+</li>
+</ul>
+<a name="withinRange(java.lang.Object, java.lang.Number, java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withinRange</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.712">withinRange</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>lo</code> - lower bound</dd><dd><code>hi</code> - upper bound</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if l <= a <= h</dd></dl>
+</li>
+</ul>
+<a name="withinRange(java.lang.Object, org.eclipse.january.dataset.BooleanDataset, java.lang.Number, java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withinRange</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.723">withinRange</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                         <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>lo</code> - lower bound</dd><dd><code>hi</code> - upper bound</dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if l <= a <= h</dd></dl>
+</li>
+</ul>
+<a name="allCloseTo(java.lang.Object, java.lang.Object, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allCloseTo</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.786">allCloseTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                 double&nbsp;relTolerance,
+                 double&nbsp;absTolerance)</pre>
+<div class="block">Compare item-wise for whether a's element is almost equal to b's
+ <p>
+ For multi-element items, comparison is true if all elements in an item
+ are equal up to a tolerance. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>relTolerance</code> - </dd><dd><code>absTolerance</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if all items satisfy abs(a - b) <= absTol + relTol*max(abs(a),abs(b))</dd></dl>
+</li>
+</ul>
+<a name="allTrue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allTrue</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.852">allTrue</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if all elements are true</dd></dl>
+</li>
+</ul>
+<a name="allTrue(org.eclipse.january.dataset.IDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allTrue</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.879">allTrue</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                     int&nbsp;axis)</pre>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - axis to reduce</dd>
+<dt><span class="strong">Returns:</span></dt><dd>boolean dataset</dd></dl>
+</li>
+</ul>
+<a name="anyTrue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>anyTrue</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.919">anyTrue</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if any element is true</dd></dl>
+</li>
+</ul>
+<a name="anyTrue(org.eclipse.january.dataset.IDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>anyTrue</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.946">anyTrue</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                     int&nbsp;axis)</pre>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - axis to reduce</dd>
+<dt><span class="strong">Returns:</span></dt><dd>boolean dataset</dd></dl>
+</li>
+</ul>
+<a name="logicalNot(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalNot</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.990">logicalNot</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Negate item-wise
+ <p>
+ For multi-element items, negation is false if all elements in a pair of items
+ are true.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true when a is false</dd></dl>
+</li>
+</ul>
+<a name="logicalNot(java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalNot</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1003">logicalNot</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Negate item-wise
+ <p>
+ For multi-element items, negation is false if all elements in a pair of items
+ are true.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true when a is false</dd></dl>
+</li>
+</ul>
+<a name="logicalAnd(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalAnd</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1039">logicalAnd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.
+ <p>
+ For multi-element items, comparison is true if all elements in a pair of items
+ are true. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a && b is true</dd></dl>
+</li>
+</ul>
+<a name="logicalAnd(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalAnd</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1054">logicalAnd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                        <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.
+ <p>
+ For multi-element items, comparison is true if all elements in a pair of items
+ are true. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a && b is true</dd></dl>
+</li>
+</ul>
+<a name="logicalOr(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalOr</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1114">logicalOr</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                       <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's item is true or b's true.
+ <p>
+ For multi-element items, comparison is true if any elements in a pair of items
+ are true. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a || b is true</dd></dl>
+</li>
+</ul>
+<a name="logicalOr(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalOr</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1129">logicalOr</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                       <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                       <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's item is true or b's true.
+ <p>
+ For multi-element items, comparison is true if any elements in a pair of items
+ are true. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a || b is true</dd></dl>
+</li>
+</ul>
+<a name="logicalXor(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalXor</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1189">logicalXor</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.
+ <p>
+ For multi-element items, comparison is true if one element in a pair of items
+ is true. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a ^ b is true</dd></dl>
+</li>
+</ul>
+<a name="logicalXor(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logicalXor</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1204">logicalXor</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                        <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.
+ <p>
+ For multi-element items, comparison is true if one element in a pair of items
+ is true. Where the datasets have mismatched item sizes, the first element
+ of the dataset with smaller items is used for comparison.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if a ^ b is true</dd></dl>
+</li>
+</ul>
+<a name="nonZero(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>nonZero</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1257">nonZero</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of positions as integer datasets</dd></dl>
+</li>
+</ul>
+<a name="isNaN(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNaN</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1292">isNaN</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers
+ <p>
+ For multi-element items, check is true if any elements in an item is Not-a-Number.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if any of its elements are NaNs</dd></dl>
+</li>
+</ul>
+<a name="isNaN(java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNaN</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1304">isNaN</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers
+ <p>
+ For multi-element items, check is true if any elements in an item is Not-a-Number.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if any of its elements are NaNs</dd></dl>
+</li>
+</ul>
+<a name="isInfinite(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1351">isInfinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Check item-wise for whether any a's elements are infinite
+ <p>
+ For multi-element items, check is true if any elements in an item is infinite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if any of its elements are infinite</dd></dl>
+</li>
+</ul>
+<a name="isInfinite(java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1363">isInfinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Check item-wise for whether any a's elements are infinite
+ <p>
+ For multi-element items, check is true if any elements in an item is infinite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if any of its elements are infinite</dd></dl>
+</li>
+</ul>
+<a name="isPositiveInfinite(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isPositiveInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1410">isPositiveInfinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Check item-wise for whether any a's elements are positive infinite
+ <p>
+ For multi-element items, the check is true if any elements in an item is positive infinite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if any of its elements are positive infinite</dd></dl>
+</li>
+</ul>
+<a name="isPositiveInfinite(java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isPositiveInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1422">isPositiveInfinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Check item-wise for whether any a's elements are positive infinite
+ <p>
+ For multi-element items, the check is true if any elements in an item is positive infinite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if any of its elements are positive infinite</dd></dl>
+</li>
+</ul>
+<a name="isNegativeInfinite(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNegativeInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1433">isNegativeInfinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Check item-wise for whether any a's elements are negative infinite
+ <p>
+ For multi-element items, the check is true if any elements in an item is negative infinite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if any of its elements are negative infinite</dd></dl>
+</li>
+</ul>
+<a name="isNegativeInfinite(java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNegativeInfinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1445">isNegativeInfinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Check item-wise for whether any a's elements are negative infinite
+ <p>
+ For multi-element items, the check is true if any elements in an item is negative infinite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if any of its elements are negative infinite</dd></dl>
+</li>
+</ul>
+<a name="isFinite(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1507">isFinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)
+ <p>
+ For multi-element items, check is true if any elements in an item is finite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if any of its elements are finite</dd></dl>
+</li>
+</ul>
+<a name="isFinite(java.lang.Object, org.eclipse.january.dataset.BooleanDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFinite</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1519">isFinite</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</pre>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)
+ <p>
+ For multi-element items, check is true if any elements in an item is finite</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where item is true if any of its elements are finite</dd></dl>
+</li>
+</ul>
+<a name="isMonotonic(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMonotonic</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1596">isMonotonic</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if all elements are in a monotonic order</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity(java.lang.Object)"><code>findMonotonicity(Object)</code></a></dd></dl>
+</li>
+</ul>
+<a name="isMonotonic(java.lang.Object, org.eclipse.january.dataset.Comparisons.Monotonicity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMonotonic</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1605">isMonotonic</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;monotonicity)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>monotonicity</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if all elements are in given monotonic ordering</dd></dl>
+</li>
+</ul>
+<a name="isStrictlyMonotonic(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isStrictlyMonotonic</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1692">isStrictlyMonotonic</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if all elements are in a strictly monotonic order</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity(java.lang.Object)"><code>findMonotonicity(Object)</code></a></dd></dl>
+</li>
+</ul>
+<a name="findMonotonicity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>findMonotonicity</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Comparisons.html#line.1702">findMonotonicity</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Find monotonicity. NaNs are ignored or considered not equal</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>monotonicity</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Comparisons.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Comparisons.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ComplexDoubleDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ComplexDoubleDataset.html
new file mode 100644
index 0000000..1742180
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ComplexDoubleDataset.html
@@ -0,0 +1,1468 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:24 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ComplexDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ComplexDoubleDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComplexDoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ComplexDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.CompoundDoubleDataset">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ComplexDoubleDataset" class="title">Class ComplexDoubleDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundDoubleDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ComplexDoubleDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.26">ComplexDoubleDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></pre>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.ComplexDoubleDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.CompoundDoubleDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex()">getComplex</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex(int...)">getComplex</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex(int)">getComplex</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplex(int,%20int)">getComplex</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getComplexAbs(int)">getComplexAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get complex value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag()">getImag</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag(int...)">getImag</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag(int)">getImag</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImag(int,%20int)">getImag</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryPart()">getImaginaryPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryView()">getImaginaryView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal()">getReal</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal(int...)">getReal</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal(int)">getReal</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getReal(int,%20int)">getReal</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#max(boolean...)">max</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#mean(boolean...)">mean</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#min(boolean...)">min</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set(double,%20double,%20int...)">set</a></strong>(double&nbsp;dr,
+      double&nbsp;di,
+      int...&nbsp;pos)</code>
+<div class="block">Set real and imaginary values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set(double,%20double,%20int)">set</a></strong>(double&nbsp;dr,
+      double&nbsp;di,
+      int&nbsp;i)</code>
+<div class="block">Set real and imaginary values at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set(double,%20double,%20int,%20int)">set</a></strong>(double&nbsp;dr,
+      double&nbsp;di,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set real and imaginary values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs(int,%20org.apache.commons.math3.complex.Complex)">setAbs</a></strong>(int&nbsp;index,
+            <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setAbs(int,%20double,%20double)">setAbs</a></strong>(int&nbsp;index,
+            double&nbsp;real,
+            double&nbsp;imag)</code>
+<div class="block">Set item at index to complex value given by real and imaginary parts</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#sum(boolean...)">sum</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.CompoundDoubleDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs(int,%20double[])">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray()">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int...)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int,%20int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray()">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElements(int)">getElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementsView(int)">getElementsView</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue()">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int...)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int,%20int)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray()">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int...)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int,%20int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray()">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int...)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int,%20int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray()">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int...)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int,%20int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray()">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int...)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int,%20int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs(int,%20double)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs(int,%20double[])">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[])">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.33">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.148">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.209">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.224">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getComplexAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplexAbs</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.239">getComplexAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get complex value at absolute index in the internal array.
+ 
+ This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.244">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObjectAbs(int)">getObjectAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.249">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, org.apache.commons.math3.complex.Complex)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.276">setAbs</a>(int&nbsp;index,
+          <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array.
+ 
+ This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.282">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setAbs(int, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.292">setAbs</a>(int&nbsp;index,
+          double&nbsp;real,
+          double&nbsp;imag)</pre>
+<div class="block">Set item at index to complex value given by real and imaginary parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>real</code> - </dd><dd><code>imag</code> - </dd></dl>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.302">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.312">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.323">get</a>(int&nbsp;i,
+          int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.333">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.340">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject()">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.345">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int)">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.350">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int,%20int)">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.355">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int...)">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getReal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.364">getReal</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getReal(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.373">getReal</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getReal(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.383">getReal</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getReal(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.392">getReal</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getImag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.400">getImag</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getImag(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.408">getImag</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getImag(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.417">getImag</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getImag(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.425">getImag</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getComplex()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.433">getComplex</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getComplex(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.441">getComplex</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getComplex(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.450">getComplex</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getComplex(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.458">getComplex</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.464">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.470">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int,%20int)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.476">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int...)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.490">set</a>(double&nbsp;dr,
+       double&nbsp;di,
+       int&nbsp;i)</pre>
+<div class="block">Set real and imaginary values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dr</code> - </dd><dd><code>di</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(double, double, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.501">set</a>(double&nbsp;dr,
+       double&nbsp;di,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block">Set real and imaginary values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dr</code> - </dd><dd><code>di</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(double, double, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.512">set</a>(double&nbsp;dr,
+       double&nbsp;di,
+       int...&nbsp;pos)</pre>
+<div class="block">Set real and imaginary values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dr</code> - </dd><dd><code>di</code> - </dd><dd><code>pos</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getRealPart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealPart</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.520">getRealPart</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>real part of dataset (if necessary, as new dataset)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getRealView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.528">getRealView</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>real part of dataset as a view</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getImaginaryPart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImaginaryPart</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.536">getImaginaryPart</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>imaginary part of dataset as new dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getImaginaryView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImaginaryView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.543">getImaginaryView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view of imaginary values</dd></dl>
+</li>
+</ul>
+<a name="max(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.548">max</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Maximum value</dd></dl>
+</li>
+</ul>
+<a name="min(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.553">min</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Minimum value</dd></dl>
+</li>
+</ul>
+<a name="sum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.558">sum</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum over all items in dataset as a Double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="mean(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.564">mean</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean of all items in dataset as a double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.570">maxPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.575">minPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.580">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.614">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                            <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.667">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.717">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.767">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.827">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.921">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.926">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html#line.969">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></dd>
+<dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComplexDoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ComplexDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.CompoundDoubleDataset">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ComplexFloatDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ComplexFloatDataset.html
new file mode 100644
index 0000000..610714a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ComplexFloatDataset.html
@@ -0,0 +1,1468 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:24 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ComplexFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ComplexFloatDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComplexFloatDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ComplexFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.CompoundFloatDataset">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ComplexFloatDataset" class="title">Class ComplexFloatDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundFloatDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ComplexFloatDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.26">ComplexFloatDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></pre>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.ComplexFloatDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.CompoundFloatDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex()">getComplex</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex(int...)">getComplex</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex(int)">getComplex</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplex(int,%20int)">getComplex</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getComplexAbs(int)">getComplexAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get complex value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag()">getImag</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag(int...)">getImag</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag(int)">getImag</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImag(int,%20int)">getImag</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryPart()">getImaginaryPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryView()">getImaginaryView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal()">getReal</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal(int...)">getReal</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal(int)">getReal</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getReal(int,%20int)">getReal</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#max(boolean...)">max</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#mean(boolean...)">mean</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#min(boolean...)">min</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set(float,%20float,%20int...)">set</a></strong>(float&nbsp;dr,
+      float&nbsp;di,
+      int...&nbsp;pos)</code>
+<div class="block">Set real and imaginary values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set(float,%20float,%20int)">set</a></strong>(float&nbsp;dr,
+      float&nbsp;di,
+      int&nbsp;i)</code>
+<div class="block">Set real and imaginary values at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set(float,%20float,%20int,%20int)">set</a></strong>(float&nbsp;dr,
+      float&nbsp;di,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set real and imaginary values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs(int,%20org.apache.commons.math3.complex.Complex)">setAbs</a></strong>(int&nbsp;index,
+            <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setAbs(int,%20float,%20float)">setAbs</a></strong>(int&nbsp;index,
+            float&nbsp;real,
+            float&nbsp;imag)</code>
+<div class="block">Set item at index to complex value given by real and imaginary parts</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#sum(boolean...)">sum</a></strong>(boolean...&nbsp;switches)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.CompoundFloatDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs(int,%20float[])">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray()">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int...)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int,%20int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray()">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElements(int)">getElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementsView(int)">getElementsView</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue()">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int...)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int,%20int)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray()">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int...)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int,%20int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray()">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int...)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int,%20int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray()">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int...)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int,%20int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray()">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int...)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int,%20int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs(int,%20float)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs(int,%20float[])">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[])">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.33">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.148">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.209">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.224">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getComplexAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplexAbs</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.239">getComplexAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get complex value at absolute index in the internal array.
+
+ This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.244">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObjectAbs(int)">getObjectAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.249">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, org.apache.commons.math3.complex.Complex)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.275">setAbs</a>(int&nbsp;index,
+          <a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array.
+
+ This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.280">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setAbs(int, float, float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.290">setAbs</a>(int&nbsp;index,
+          float&nbsp;real,
+          float&nbsp;imag)</pre>
+<div class="block">Set item at index to complex value given by real and imaginary parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>real</code> - </dd><dd><code>imag</code> - </dd></dl>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.300">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.310">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.321">get</a>(int&nbsp;i,
+          int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.331">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.338">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject()">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.343">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int)">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.348">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int,%20int)">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.353">getObject</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int...)">getObject</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getReal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.361">getReal</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getReal(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.369">getReal</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getReal(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.378">getReal</a>(int&nbsp;i,
+            int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getReal(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReal</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.386">getReal</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getImag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.394">getImag</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getImag(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.402">getImag</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getImag(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.411">getImag</a>(int&nbsp;i,
+            int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getImag(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImag</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.419">getImag</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getComplex()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.427">getComplex</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getComplex(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.435">getComplex</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getComplex(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.444">getComplex</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getComplex(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComplex</h4>
+<pre>public&nbsp;<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.452">getComplex</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.457">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.462">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int,%20int)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.467">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int...)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(float, float, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.481">set</a>(float&nbsp;dr,
+       float&nbsp;di,
+       int&nbsp;i)</pre>
+<div class="block">Set real and imaginary values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dr</code> - </dd><dd><code>di</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(float, float, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.492">set</a>(float&nbsp;dr,
+       float&nbsp;di,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block">Set real and imaginary values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dr</code> - </dd><dd><code>di</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(float, float, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.503">set</a>(float&nbsp;dr,
+       float&nbsp;di,
+       int...&nbsp;pos)</pre>
+<div class="block">Set real and imaginary values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dr</code> - </dd><dd><code>di</code> - </dd><dd><code>pos</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getRealPart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealPart</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.511">getRealPart</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>real part of dataset (if necessary, as new dataset)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getRealView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.519">getRealView</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>real part of dataset as a view</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getImaginaryPart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImaginaryPart</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.527">getImaginaryPart</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>imaginary part of dataset as new dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getImaginaryView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImaginaryView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.534">getImaginaryView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view of imaginary values</dd></dl>
+</li>
+</ul>
+<a name="max(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.539">max</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Maximum value</dd></dl>
+</li>
+</ul>
+<a name="min(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.544">min</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Minimum value</dd></dl>
+</li>
+</ul>
+<a name="sum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.549">sum</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum over all items in dataset as a Double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="mean(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.555">mean</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean of all items in dataset as a double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.561">maxPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.566">minPos</a>(boolean...&nbsp;switches)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>switches</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.571">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.605">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                           <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.658">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.708">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.758">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.818">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.912">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.917">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ComplexFloatDataset.html#line.960">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></dd>
+<dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ComplexFloatDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ComplexFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.CompoundFloatDataset">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundByteDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundByteDataset.html
new file mode 100644
index 0000000..c47ac71
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundByteDataset.html
@@ -0,0 +1,1996 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:24 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundByteDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundByteDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundByteDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CompoundByteDataset" class="title">Class CompoundByteDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CompoundByteDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.24">CompoundByteDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></pre>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.CompoundByteDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getAbs(int,%20byte[])">getAbs</a></strong>(int&nbsp;index,
+            byte[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setAbs(int,%20byte)">setAbs</a></strong>(int&nbsp;index,
+            byte&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setAbs(int,%20byte[])">setAbs</a></strong>(int&nbsp;index,
+            byte[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[])">setItem</a></strong>(byte[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[],%20int...)">setItem</a></strong>(byte[]&nbsp;d,
+              int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[],%20int)">setItem</a></strong>(byte[]&nbsp;d,
+              int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItem(byte[],%20int,%20int)">setItem</a></strong>(byte[]&nbsp;d,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;byte[] <a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.28">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.31">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.35">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.272">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.277">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.302">createFromObject</a>(int&nbsp;itemSize,
+                                   <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetWithLastDimension</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.345">createCompoundDatasetWithLastDimension</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                         boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.374">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">CompoundDataset</a></code></strong></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.391">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.409">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.414">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.421">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.436">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>values</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int, byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.452">getAbs</a>(int&nbsp;index,
+          byte[]&nbsp;values)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>values</code> - </dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.459">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.464">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.469">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.474">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.491">setAbs</a>(int&nbsp;index,
+          byte[]&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, byte)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.507">setAbs</a>(int&nbsp;index,
+          byte&nbsp;val)</pre>
+<div class="block">Set element value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.513">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.518">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.523">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.528">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.533">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.543">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.553">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.563">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.573">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.583">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.593">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.603">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.613">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.623">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.633">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.643">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.653">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.663">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.673">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.683">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.693">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.703">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.713">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.723">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.733">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.743">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.753">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.763">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.773">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.780">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.785">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.790">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.795">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.800">getFirstValue</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.805">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.810">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.815">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.820">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.829">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.844">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.850">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.855">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.860">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.865">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem(byte[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.879">setItem</a>(byte[]&nbsp;d)</pre>
+<div class="block">Set values at first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(byte[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.892">setItem</a>(byte[]&nbsp;d,
+           int&nbsp;i)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(byte[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.906">setItem</a>(byte[]&nbsp;d,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(byte[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.919">setItem</a>(byte[]&nbsp;d,
+           int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.932">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.960">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.975">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.999">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1007">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1029">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1051">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1065">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1115">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1167">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1247">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                           <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1318">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1345">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1363">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1368">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1373">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1378">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1464">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1550">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1638">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1764">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1769">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1890">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundByteDataset.html#line.1992">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundByteDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundByteDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundDataset.html
new file mode 100644
index 0000000..439901f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundDataset.html
@@ -0,0 +1,2104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:25 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface CompoundDataset" class="title">Interface CompoundDataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.17">CompoundDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#serialVersionUID">serialVersionUID</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#flatten()">flatten</a></strong>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a></strong>(double[]&nbsp;darray)</code>
+<div class="block">Get first item as a double array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a></strong>(double[]&nbsp;darray,
+                            int...&nbsp;pos)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a></strong>(double[]&nbsp;darray,
+                            int&nbsp;i)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a></strong>(double[]&nbsp;darray,
+                            int&nbsp;i,
+                            int&nbsp;j)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place floor division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#maxItem()">maxItem</a></strong>()</code>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#minItem()">minItem</a></strong>()</code>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze()">squeeze</a></strong>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnd)</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="cast(boolean, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.20">cast</a>(boolean&nbsp;repeat,
+                   int&nbsp;dtype,
+                   int&nbsp;isize)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>dtype</code> - dataset type</dd><dd><code>isize</code> - item size</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.23">cast</a>(int&nbsp;dtype)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">Dataset</a></code></strong></div>
+<div class="block">Cast a dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.26">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">IDataset</a></code></strong></div>
+<div class="block">Clone dataset, making new copy of data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (deep) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.29">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="flatten()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flatten</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.32">flatten</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">Dataset</a></code></strong></div>
+<div class="block">Flatten shape</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a flattened dataset which is a view if dataset is contiguous otherwise is a copy</dd></dl>
+</li>
+</ul>
+<a name="getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBy1DIndex</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.35">getBy1DIndex</a>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by indices</dd></dl>
+</li>
+</ul>
+<a name="getByBoolean(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByBoolean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.38">getByBoolean</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset</dd></dl>
+</li>
+</ul>
+<a name="getByIndexes(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByIndexes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.41">getByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by index</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.44">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                       int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.47">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.50">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                       <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.53">getSlice</a>(int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.56">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.59">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.62">getSliceView</a>(int[]&nbsp;start,
+                           int[]&nbsp;stop,
+                           int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.65">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.68">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.71">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">IDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.74">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getBroadcastView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBroadcastView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.77">getBroadcastView</a>(int...&nbsp;shape)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of dataset that is broadcasted to given shape</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.80">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.83">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.86">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloorDivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloorDivide</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.89">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place floor division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.92">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.95">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.98">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.101">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="reshape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reshape</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.104">reshape</a>(int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">Dataset</a></code></strong></div>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - new shape</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.107">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                           <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.110">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                           <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.113">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.116">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>iterator</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.119">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>start</code> - specifies the starting indexes</dd><dd><code>stop</code> - specifies the stopping indexes (nb, these are <b>not</b> included in the slice)</dd><dd><code>step</code> - specifies the steps in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.122">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.125">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.128">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.131">squeeze</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.134">squeeze</a>(boolean&nbsp;onlyFromEnd)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="swapAxes(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swapAxes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.137">swapAxes</a>(int&nbsp;axis1,
+                       int&nbsp;axis2)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Swap two axes in dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>swapped view of dataset</dd></dl>
+</li>
+</ul>
+<a name="synchronizedCopy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>synchronizedCopy</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.140">synchronizedCopy</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">Dataset</a></code></strong></div>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="transpose(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transpose</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.143">transpose</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">Dataset</a></code></strong></div>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>Dataset.getTransposedView(int...)</code></a></div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped copy of data</dd></dl>
+</li>
+</ul>
+<a name="max(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.149">max</a>(int&nbsp;axis,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>maxima along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="min(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.155">min</a>(int&nbsp;axis,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>minima along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="peakToPeak(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peakToPeak</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.161">peakToPeak</a>(int&nbsp;axis,
+                         boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="sum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.167">sum</a>(int&nbsp;axis,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="product(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.173">product</a>(int&nbsp;axis,
+                      boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="mean(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.179">mean</a>(int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.185">rootMeanSquare</a>(int&nbsp;axis,
+                             boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.188">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.194">stdDeviation</a>(int&nbsp;axis,
+                           boolean&nbsp;isWholePopulation,
+                           boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">Dataset</a></code></strong></div>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.197">variance</a>(int&nbsp;axis)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.203">variance</a>(int&nbsp;axis,
+                       boolean&nbsp;isWholePopulation,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.210">getDoubleArray</a>(double[]&nbsp;darray)</pre>
+<div class="block">Get first item as a double array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.217">getDoubleArray</a>(double[]&nbsp;darray,
+                  int&nbsp;i)</pre>
+<div class="block">Get an item as a double array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.225">getDoubleArray</a>(double[]&nbsp;darray,
+                  int&nbsp;i,
+                  int&nbsp;j)</pre>
+<div class="block">Get an item as a double array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(double[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.232">getDoubleArray</a>(double[]&nbsp;darray,
+                  int...&nbsp;pos)</pre>
+<div class="block">Get an item as a double array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>darray</code> - double array must be allocated and have sufficient length</dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.239">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block">Get an item as a double array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.246">getElements</a>(int&nbsp;element)</pre>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.253">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>element</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.260">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>source</code> - </dd><dd><code>element</code> - </dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.267">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>destination</code> - </dd><dd><code>element</code> - </dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.274">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="maxItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxItem</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.280">maxItem</a>()</pre>
+<div class="block">Calculate maximum values of elements over all items in dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>double array of element-wise maxima</dd></dl>
+</li>
+</ul>
+<a name="minItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minItem</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.286">minItem</a>()</pre>
+<div class="block">Calculate minimum values of elements over all items in dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>double array of element-wise minima</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.292">getErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">Dataset</a></code></strong></div>
+<div class="block">Get the error array from the dataset of same shape. This will create a new dataset
+ if the error set was of lower rank</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the dataset which contains the error information (can be null)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.298">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.304">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.311">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.317">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.323">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.329">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.336">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.342">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.348">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.354">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.361">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.368">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.374">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.380">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.387">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.393">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.399">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.405">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.412">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.418">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.424">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.430">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.437">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDataset.html#line.443">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundDoubleDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundDoubleDataset.html
new file mode 100644
index 0000000..6edcfd0
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundDoubleDataset.html
@@ -0,0 +1,2000 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:25 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundDoubleDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundDoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CompoundDoubleDataset" class="title">Class CompoundDoubleDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CompoundDoubleDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.24">CompoundDoubleDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></pre>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.CompoundDoubleDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getAbs(int,%20double[])">getAbs</a></strong>(int&nbsp;index,
+            double[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs(int,%20double)">setAbs</a></strong>(int&nbsp;index,
+            double&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setAbs(int,%20double[])">setAbs</a></strong>(int&nbsp;index,
+            double[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[])">setItem</a></strong>(double[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int...)">setItem</a></strong>(double[]&nbsp;d,
+              int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int)">setItem</a></strong>(double[]&nbsp;d,
+              int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItem(double[],%20int,%20int)">setItem</a></strong>(double[]&nbsp;d,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;double[] <a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.28">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.31">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.35">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.272">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.277">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.302">createFromObject</a>(int&nbsp;itemSize,
+                                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetWithLastDimension</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.345">createCompoundDatasetWithLastDimension</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                           boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.374">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">CompoundDataset</a></code></strong></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.391">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.409">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.414">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.421">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.436">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>values</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.452">getAbs</a>(int&nbsp;index,
+          double[]&nbsp;values)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>values</code> - </dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.459">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.464">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.469">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.474">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.491">setAbs</a>(int&nbsp;index,
+          double[]&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.507">setAbs</a>(int&nbsp;index,
+          double&nbsp;val)</pre>
+<div class="block">Set element value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.513">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.518">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.523">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.528">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.533">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.543">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.553">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.563">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.573">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.583">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.593">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.603">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.613">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.623">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.633">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.643">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.653">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.663">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.673">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.683">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.693">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.703">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.713">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.723">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.733">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.743">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.753">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.763">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.773">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.780">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.785">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.790">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.795">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.800">getFirstValue</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.805">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.810">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.815">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.820">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.829">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.844">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.850">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.855">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.860">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.865">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem(double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.879">setItem</a>(double[]&nbsp;d)</pre>
+<div class="block">Set values at first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(double[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.892">setItem</a>(double[]&nbsp;d,
+           int&nbsp;i)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(double[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.906">setItem</a>(double[]&nbsp;d,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(double[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.919">setItem</a>(double[]&nbsp;d,
+           int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.932">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.960">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.975">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.999">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1007">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1029">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1051">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1065">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1115">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1167">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1247">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                             <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1318">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1345">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1363">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1375">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1387">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1400">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1486">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1572">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1660">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1770">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1782">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1887">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html#line.1989">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundDoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundFloatDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundFloatDataset.html
new file mode 100644
index 0000000..644a6a7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundFloatDataset.html
@@ -0,0 +1,2000 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:25 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundFloatDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundFloatDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CompoundFloatDataset" class="title">Class CompoundFloatDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CompoundFloatDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.24">CompoundFloatDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></pre>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.CompoundFloatDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getAbs(int,%20float[])">getAbs</a></strong>(int&nbsp;index,
+            float[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs(int,%20float)">setAbs</a></strong>(int&nbsp;index,
+            float&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setAbs(int,%20float[])">setAbs</a></strong>(int&nbsp;index,
+            float[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[])">setItem</a></strong>(float[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int...)">setItem</a></strong>(float[]&nbsp;d,
+              int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int)">setItem</a></strong>(float[]&nbsp;d,
+              int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItem(float[],%20int,%20int)">setItem</a></strong>(float[]&nbsp;d,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;float[] <a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.28">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.31">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.35">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.272">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.277">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.302">createFromObject</a>(int&nbsp;itemSize,
+                                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetWithLastDimension</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.345">createCompoundDatasetWithLastDimension</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                          boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.374">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">CompoundDataset</a></code></strong></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.391">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.409">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.414">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.421">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.436">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>values</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int, float[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.452">getAbs</a>(int&nbsp;index,
+          float[]&nbsp;values)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>values</code> - </dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.459">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.464">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.469">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.474">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, float[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.491">setAbs</a>(int&nbsp;index,
+          float[]&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.507">setAbs</a>(int&nbsp;index,
+          float&nbsp;val)</pre>
+<div class="block">Set element value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.513">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.518">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.523">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.528">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.533">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.543">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.553">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.563">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.573">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.583">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.593">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.603">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.613">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.623">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.633">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.643">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.653">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.663">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.673">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.683">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.693">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.703">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.713">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.723">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.733">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.743">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.753">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.763">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.773">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.780">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.785">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.790">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.795">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.800">getFirstValue</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.805">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.810">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.815">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.820">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.829">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.844">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.850">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.855">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.860">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.865">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem(float[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.879">setItem</a>(float[]&nbsp;d)</pre>
+<div class="block">Set values at first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(float[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.892">setItem</a>(float[]&nbsp;d,
+           int&nbsp;i)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(float[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.906">setItem</a>(float[]&nbsp;d,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(float[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.919">setItem</a>(float[]&nbsp;d,
+           int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.932">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.960">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.975">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.999">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1007">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1029">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1051">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1065">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1115">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1167">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1247">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                            <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1318">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1345">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1363">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1375">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1387">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1400">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1486">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1572">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1660">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1770">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1782">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1887">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundFloatDataset.html#line.1989">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundFloatDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundIntegerDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundIntegerDataset.html
new file mode 100644
index 0000000..55d81f2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundIntegerDataset.html
@@ -0,0 +1,1996 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:25 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundIntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundIntegerDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundIntegerDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundIntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundIntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CompoundIntegerDataset" class="title">Class CompoundIntegerDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CompoundIntegerDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.24">CompoundIntegerDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></pre>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.CompoundIntegerDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getAbs(int,%20int[])">getAbs</a></strong>(int&nbsp;index,
+            int[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs(int,%20int)">setAbs</a></strong>(int&nbsp;index,
+            int&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setAbs(int,%20int[])">setAbs</a></strong>(int&nbsp;index,
+            int[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[])">setItem</a></strong>(int[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[],%20int...)">setItem</a></strong>(int[]&nbsp;d,
+              int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[],%20int)">setItem</a></strong>(int[]&nbsp;d,
+              int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItem(int[],%20int,%20int)">setItem</a></strong>(int[]&nbsp;d,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.28">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.31">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.35">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.272">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.277">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.302">createFromObject</a>(int&nbsp;itemSize,
+                                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetWithLastDimension</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.345">createCompoundDatasetWithLastDimension</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                            boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.374">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">CompoundDataset</a></code></strong></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.391">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.409">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.414">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.421">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.436">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>values</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.452">getAbs</a>(int&nbsp;index,
+          int[]&nbsp;values)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>values</code> - </dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.459">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.464">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.469">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.474">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.491">setAbs</a>(int&nbsp;index,
+          int[]&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.507">setAbs</a>(int&nbsp;index,
+          int&nbsp;val)</pre>
+<div class="block">Set element value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.513">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.518">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.523">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.528">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.533">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.543">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.553">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.563">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.573">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.583">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.593">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.603">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.613">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.623">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.633">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.643">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.653">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.663">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.673">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.683">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.693">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.703">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.713">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.723">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.733">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.743">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.753">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.763">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.773">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.780">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.785">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.790">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.795">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.800">getFirstValue</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.805">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.810">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.815">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.820">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.829">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.844">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.850">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.855">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.860">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.865">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.879">setItem</a>(int[]&nbsp;d)</pre>
+<div class="block">Set values at first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.892">setItem</a>(int[]&nbsp;d,
+           int&nbsp;i)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(int[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.906">setItem</a>(int[]&nbsp;d,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(int[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.919">setItem</a>(int[]&nbsp;d,
+           int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.932">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.960">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.975">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.999">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1007">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1029">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1051">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1065">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1115">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1167">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1247">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                              <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1318">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1345">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1363">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1368">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1373">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1378">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1464">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1550">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1638">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1764">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1769">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1890">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html#line.1992">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundIntegerDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundIntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundIntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundLongDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundLongDataset.html
new file mode 100644
index 0000000..1463c07
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundLongDataset.html
@@ -0,0 +1,1996 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundLongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundLongDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundLongDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundLongDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundLongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CompoundLongDataset" class="title">Class CompoundLongDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CompoundLongDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.24">CompoundLongDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></pre>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.CompoundLongDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getAbs(int,%20long[])">getAbs</a></strong>(int&nbsp;index,
+            long[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setAbs(int,%20long)">setAbs</a></strong>(int&nbsp;index,
+            long&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setAbs(int,%20long[])">setAbs</a></strong>(int&nbsp;index,
+            long[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[])">setItem</a></strong>(long[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[],%20int...)">setItem</a></strong>(long[]&nbsp;d,
+              int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[],%20int)">setItem</a></strong>(long[]&nbsp;d,
+              int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItem(long[],%20int,%20int)">setItem</a></strong>(long[]&nbsp;d,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;long[] <a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.28">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.31">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.35">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.272">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.277">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.302">createFromObject</a>(int&nbsp;itemSize,
+                                   <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetWithLastDimension</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.345">createCompoundDatasetWithLastDimension</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                         boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.374">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">CompoundDataset</a></code></strong></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.391">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.409">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.414">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.421">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.436">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>values</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int, long[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.452">getAbs</a>(int&nbsp;index,
+          long[]&nbsp;values)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>values</code> - </dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.459">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.464">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.469">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.474">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, long[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.491">setAbs</a>(int&nbsp;index,
+          long[]&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.507">setAbs</a>(int&nbsp;index,
+          long&nbsp;val)</pre>
+<div class="block">Set element value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.513">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.518">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.523">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.528">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.533">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.543">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.553">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.563">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.573">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.583">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.593">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.603">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.613">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.623">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.633">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.643">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.653">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.663">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.673">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.683">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.693">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.703">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.713">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.723">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.733">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.743">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.753">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.763">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.773">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.780">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.785">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.790">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.795">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.800">getFirstValue</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.805">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.810">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.815">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.820">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.829">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.844">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.850">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.855">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.860">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.865">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem(long[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.879">setItem</a>(long[]&nbsp;d)</pre>
+<div class="block">Set values at first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(long[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.892">setItem</a>(long[]&nbsp;d,
+           int&nbsp;i)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(long[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.906">setItem</a>(long[]&nbsp;d,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(long[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.919">setItem</a>(long[]&nbsp;d,
+           int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.932">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.960">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.975">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.999">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1007">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1029">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1051">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1065">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1115">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1167">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1247">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                           <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1318">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1345">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1363">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1368">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1373">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1378">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1464">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1550">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1638">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1764">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1769">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1890">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundLongDataset.html#line.1992">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundLongDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundLongDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundLongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/CompoundShortDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundShortDataset.html
new file mode 100644
index 0000000..b68a673
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/CompoundShortDataset.html
@@ -0,0 +1,2000 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CompoundShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="CompoundShortDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundShortDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundShortDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class CompoundShortDataset" class="title">Class CompoundShortDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.CompoundShortDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.24">CompoundShortDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></pre>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.CompoundShortDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getAbs(int,%20short[])">getAbs</a></strong>(int&nbsp;index,
+            short[]&nbsp;values)</code>
+<div class="block">Get values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray()">getByteArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int...)">getByteArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int)">getByteArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int,%20int)">getByteArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray()">getDoubleArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int...)">getDoubleArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int)">getDoubleArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a></strong>(int&nbsp;i,
+                            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a></strong>(int&nbsp;index,
+                                  double[]&nbsp;darray)</code>
+<div class="block">Get an item as a double array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue()">getFirstValue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int...)">getFirstValue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int)">getFirstValue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int,%20int)">getFirstValue</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray()">getFloatArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int...)">getFloatArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int)">getFloatArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int,%20int)">getFloatArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray()">getIntArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int...)">getIntArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int)">getIntArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int,%20int)">getIntArray</a></strong>(int&nbsp;i,
+                      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray()">getLongArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int...)">getLongArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int)">getLongArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int,%20int)">getLongArray</a></strong>(int&nbsp;i,
+                        int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray()">getShortArray</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int...)">getShortArray</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int)">getShortArray</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int,%20int)">getShortArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs(int,%20short)">setAbs</a></strong>(int&nbsp;index,
+            short&nbsp;val)</code>
+<div class="block">Set element value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs(int,%20short[])">setAbs</a></strong>(int&nbsp;index,
+            short[]&nbsp;val)</code>
+<div class="block">Set values at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[])">setItem</a></strong>(short[]&nbsp;d)</code>
+<div class="block">Set values at first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int...)">setItem</a></strong>(short[]&nbsp;d,
+              int...&nbsp;pos)</code>
+<div class="block">Set values at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int)">setItem</a></strong>(short[]&nbsp;d,
+              int&nbsp;i)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int,%20int)">setItem</a></strong>(short[]&nbsp;d,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Set values at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;short[] <a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.28">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.31">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.35">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.50">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.251">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.272">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.277">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.302">createFromObject</a>(int&nbsp;itemSize,
+                                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetWithLastDimension</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.345">createCompoundDatasetWithLastDimension</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                          boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="asNonCompoundDataset(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asNonCompoundDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.374">asNonCompoundDataset</a>(boolean&nbsp;shareData)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">CompoundDataset</a></code></strong></div>
+<div class="block">Get a non-compound dataset version</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shareData</code> - if true, share data otherwise copy it</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.391">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.409">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.414">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.421">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.436">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>values</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int, short[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.452">getAbs</a>(int&nbsp;index,
+          short[]&nbsp;values)</pre>
+<div class="block">Get values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>values</code> - </dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.459">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.464">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.469">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.474">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, short[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.491">setAbs</a>(int&nbsp;index,
+          short[]&nbsp;val)</pre>
+<div class="block">Set values at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new values</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, short)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.507">setAbs</a>(int&nbsp;index,
+          short&nbsp;val)</pre>
+<div class="block">Set element value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.513">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.518">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.523">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.528">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getByteArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.533">getByteArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.543">getByteArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.553">getByteArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getByteArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByteArray</h4>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.563">getByteArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.573">getShortArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.583">getShortArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.593">getShortArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getShortArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShortArray</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.603">getShortArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.613">getIntArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.623">getIntArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.633">getIntArray</a>(int&nbsp;i,
+                int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getIntArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIntArray</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.643">getIntArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.653">getLongArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.663">getLongArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.673">getLongArray</a>(int&nbsp;i,
+                  int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getLongArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLongArray</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.683">getLongArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.693">getFloatArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.703">getFloatArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.713">getFloatArray</a>(int&nbsp;i,
+                    int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getFloatArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloatArray</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.723">getFloatArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.733">getDoubleArray</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.743">getDoubleArray</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.753">getDoubleArray</a>(int&nbsp;i,
+                      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArray(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArray</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.763">getDoubleArray</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getDoubleArrayAbs(int, double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDoubleArrayAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.773">getDoubleArrayAbs</a>(int&nbsp;index,
+                     double[]&nbsp;darray)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getDoubleArrayAbs(int,%20double[])">CompoundDataset</a></code></strong></div>
+<div class="block">Get an item as a double array</div>
+<dl><dd><code>darray</code> - double array must be allocated and have sufficient length</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.780">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.785">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.790">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.795">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getFirstValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.800">getFirstValue</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue()">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.805">getFirstValue</a>(int&nbsp;i)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.810">getFirstValue</a>(int&nbsp;i,
+                   int&nbsp;j)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int,%20int)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFirstValue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstValue</h4>
+<pre>protected&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.815">getFirstValue</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFirstValue(int...)">getFirstValue</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.820">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.829">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.844">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.850">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.855">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.860">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.865">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="setItem(short[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.879">setItem</a>(short[]&nbsp;d)</pre>
+<div class="block">Set values at first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(short[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.892">setItem</a>(short[]&nbsp;d,
+           int&nbsp;i)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(short[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.906">setItem</a>(short[]&nbsp;d,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Set values at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(short[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.919">setItem</a>(short[]&nbsp;d,
+           int...&nbsp;pos)</pre>
+<div class="block">Set values at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.932">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.960">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementsView(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.975">getElementsView</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="getElements(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElements</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.999">getElements</a>(int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">CompoundDataset</a></code></strong></div>
+<div class="block">Get chosen elements from each item as a dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset of chosen elements</dd></dl>
+</li>
+</ul>
+<a name="copyElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1007">copyElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</li>
+</ul>
+<a name="setElements(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setElements</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1029">setElements</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+               int&nbsp;element)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">CompoundDataset</a></code></strong></div>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1051">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1065">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1115">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1167">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1247">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                            <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1318">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1345">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1363">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1368">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1373">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1378">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1464">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1550">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1638">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1764">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1769">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1890">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/CompoundShortDataset.html#line.1992">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompoundShortDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/CompoundShortDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousIterator.html
new file mode 100644
index 0000000..a533738
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousIterator.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ContiguousIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ContiguousIterator" class="title">Class ContiguousIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ContiguousIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.18">ContiguousIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Class to run over contiguous datasets</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator(int)">ContiguousIterator</a></strong>(int&nbsp;length)</code>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator(int,%20int)">ContiguousIterator</a></strong>(int&nbsp;length,
+                                    int&nbsp;isize)</code>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#ContiguousIterator(int,%20int,%20int)">ContiguousIterator</a></strong>(int&nbsp;length,
+                                    int&nbsp;isize,
+                                    int&nbsp;element)</code>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ContiguousIterator(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ContiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.29">ContiguousIterator</a>(int&nbsp;length)</pre>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>length</code> - of entire data array</dd></dl>
+</li>
+</ul>
+<a name="ContiguousIterator(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ContiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.40">ContiguousIterator</a>(int&nbsp;length,
+                  int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>length</code> - of entire data array</dd><dd><code>isize</code> - number of elements in an item</dd></dl>
+</li>
+</ul>
+<a name="ContiguousIterator(int, int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ContiguousIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.52">ContiguousIterator</a>(int&nbsp;length,
+                  int&nbsp;isize,
+                  int&nbsp;element)</pre>
+<div class="block">Constructor for an iterator over the items of a contiguous dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>length</code> - of entire data array</dd><dd><code>isize</code> - number of elements in an item</dd><dd><code>element</code> - element to start with (for compound datasets)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.60">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.66">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIterator.html#line.71">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..4774a57
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
@@ -0,0 +1,368 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousIteratorWithPosition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ContiguousIteratorWithPosition (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousIteratorWithPosition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIteratorWithPosition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ContiguousIteratorWithPosition" class="title">Class ContiguousIteratorWithPosition</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ContiguousIteratorWithPosition</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.21">ContiguousIteratorWithPosition</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Class to run over contiguous datasets and keep track of position. Note this is slower than ContiguousIterator</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition(int[],%20int)">ContiguousIteratorWithPosition</a></strong>(int[]&nbsp;shape,
+                                                            int&nbsp;length)</code>
+<div class="block">Constructor for an iterator over the items of a dataset that are
+ within the dimensions</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#ContiguousIteratorWithPosition(int[],%20int,%20int)">ContiguousIteratorWithPosition</a></strong>(int[]&nbsp;shape,
+                                                            int&nbsp;length,
+                                                            int&nbsp;isize)</code>
+<div class="block">Constructor for an iterator over the items of a dataset that are
+ within the dimensions</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ContiguousIteratorWithPosition(int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ContiguousIteratorWithPosition</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.35">ContiguousIteratorWithPosition</a>(int[]&nbsp;shape,
+                              int&nbsp;length)</pre>
+<div class="block">Constructor for an iterator over the items of a dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>length</code> - of entire data array</dd></dl>
+</li>
+</ul>
+<a name="ContiguousIteratorWithPosition(int[], int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ContiguousIteratorWithPosition</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.47">ContiguousIteratorWithPosition</a>(int[]&nbsp;shape,
+                              int&nbsp;length,
+                              int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the items of a dataset that are
+ within the dimensions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>length</code> - of entire data array</dd><dd><code>isize</code> - number of elements in an item</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.62">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.85">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb not a copy)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.90">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html#line.99">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousIteratorWithPosition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIteratorWithPosition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousPairIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousPairIterator.html
new file mode 100644
index 0000000..7937f84
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousPairIterator.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ContiguousPairIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousPairIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousPairIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ContiguousPairIterator" class="title">Class ContiguousPairIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIteratorBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ContiguousPairIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ContiguousPairIterator.html#line.18">ContiguousPairIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></pre>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aDouble">aDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#aLong">aLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#oIndex">oIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputA">outputA</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#outputB">outputB</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#ContiguousPairIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">ContiguousPairIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                            boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#getOutput()">getOutput</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html#storeCurrentValues()">storeCurrentValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ContiguousPairIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ContiguousPairIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousPairIterator.html#line.25">ContiguousPairIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                      boolean&nbsp;createIfNull)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousPairIterator.html#line.48">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousPairIterator.html#line.76">getPos</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousPairIterator.html#line.81">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousPairIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousPairIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousSingleIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousSingleIterator.html
new file mode 100644
index 0000000..ece21c2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ContiguousSingleIterator.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ContiguousSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ContiguousSingleIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousSingleIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ContiguousSingleIterator" class="title">Class ContiguousSingleIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastIteratorBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BroadcastSelfIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ContiguousSingleIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html#line.15">ContiguousSingleIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></pre>
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aIndex">aIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#asDouble">asDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDouble">bDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bIndex">bIndex</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bLong">bLong</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#maxShape">maxShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#pos">pos</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#read">read</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#ContiguousSingleIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">ContiguousSingleIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastSelfIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#storeCurrentValues()">storeCurrentValues</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#isOutputDouble()">isOutputDouble</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#setOutputDouble(boolean)">setOutputDouble</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ContiguousSingleIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ContiguousSingleIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html#line.21">ContiguousSingleIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html#line.33">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html#line.51">getPos</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html#line.56">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContiguousSingleIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ContiguousSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.BroadcastIteratorBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DTypeUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/DTypeUtils.html
new file mode 100644
index 0000000..798d73b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DTypeUtils.html
@@ -0,0 +1,877 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DTypeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DTypeUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DTypeUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DTypeUtils.html" target="_top">Frames</a></li>
+<li><a href="DTypeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DTypeUtils" class="title">Class DTypeUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DTypeUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.22">DTypeUtils</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#logger">logger</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#DTypeUtils()">DTypeUtils</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#fromDoublesToBiggestPrimitives(double[],%20int)">fromDoublesToBiggestPrimitives</a></strong>(double[]&nbsp;x,
+                                                            int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#fromDoubleToBiggestNumber(double,%20int)">fromDoubleToBiggestNumber</a></strong>(double&nbsp;x,
+                                                  int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getBestDType(int,%20int)">getBestDType</a></strong>(int&nbsp;atype,
+                        int&nbsp;btype)</code>
+<div class="block">Find dataset type that best fits given types The best type takes into account complex and array datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getBestFloatDType(java.lang.Class)">getBestFloatDType</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;cls)</code>
+<div class="block">Find floating point dataset type that best fits given class The best type takes into account complex and array
+ datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getBestFloatDType(int)">getBestFloatDType</a></strong>(int&nbsp;otype)</code>
+<div class="block">Find floating point dataset type that best fits given types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType(java.lang.Class)">getDType</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType(org.eclipse.january.dataset.ILazyDataset)">getDType</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;d)</code>
+<div class="block">Get dataset type from given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass(java.lang.Class)">getDTypeFromClass</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;cls)</code>
+<div class="block">Get dataset type from an element class</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromClass(java.lang.Class,%20int)">getDTypeFromClass</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;cls,
+                                  int&nbsp;isize)</code>
+<div class="block">Get dataset type from an element class</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeFromObject(java.lang.Object)">getDTypeFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Get dataset type from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(org.eclipse.january.dataset.Dataset)">getDTypeName</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(org.eclipse.january.dataset.ILazyDataset)">getDTypeName</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(int,%20int)">getDTypeName</a></strong>(int&nbsp;dtype,
+                        int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getElementalDType(int)">getElementalDType</a></strong>(int&nbsp;otype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getElementClass(int)">getElementClass</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getElementsPerItem(int)">getElementsPerItem</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getItemBytes(int)">getItemBytes</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getItemBytes(int,%20int)">getItemBytes</a></strong>(int&nbsp;dtype,
+                        int&nbsp;isize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getLargestDType(int)">getLargestDType</a></strong>(int&nbsp;otype)</code>
+<div class="block">The largest dataset type suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#getLength(java.lang.Object)">getLength</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isClassSupportedAsElement(java.lang.Class)">isClassSupportedAsElement</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;comp)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeComplex(int)">isDTypeComplex</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeElemental(int)">isDTypeElemental</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeFloating(int)">isDTypeFloating</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeInteger(int)">isDTypeInteger</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#isDTypeNumerical(int)">isDTypeNumerical</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toBoolean(java.lang.Object)">toBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static byte[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toByteArray(java.lang.Object,%20int)">toByteArray</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toDoubleArray(java.lang.Object,%20int)">toDoubleArray</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                          int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toFloatArray(java.lang.Object,%20int)">toFloatArray</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                        int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toImag(java.lang.Object)">toImag</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toIntegerArray(java.lang.Object,%20int)">toIntegerArray</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                            int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLong(double)">toLong</a></strong>(double&nbsp;d)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLong(float)">toLong</a></strong>(float&nbsp;d)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLong(java.lang.Object)">toLong</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toLongArray(java.lang.Object,%20int)">toLongArray</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toReal(java.lang.Object)">toReal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html#toShortArray(java.lang.Object,%20int)">toShortArray</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                        int&nbsp;itemSize)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="logger">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>logger</h4>
+<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.23">logger</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DTypeUtils()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DTypeUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.22">DTypeUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDTypeName(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTypeName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.81">getDTypeName</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>name of dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDTypeName(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTypeName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.89">getDTypeName</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>name of dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDTypeName(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTypeName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.98">getDTypeName</a>(int&nbsp;dtype,
+                  int&nbsp;itemSize)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>itemSize</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>name of dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDType(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.128">getDType</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;clazz)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset type for dataset class</dd></dl>
+</li>
+</ul>
+<a name="isDTypeElemental(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDTypeElemental</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.135">isDTypeElemental</a>(int&nbsp;dtype)</pre>
+</li>
+</ul>
+<a name="isDTypeInteger(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDTypeInteger</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.139">isDTypeInteger</a>(int&nbsp;dtype)</pre>
+</li>
+</ul>
+<a name="isDTypeFloating(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDTypeFloating</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.144">isDTypeFloating</a>(int&nbsp;dtype)</pre>
+</li>
+</ul>
+<a name="isDTypeComplex(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDTypeComplex</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.149">isDTypeComplex</a>(int&nbsp;dtype)</pre>
+</li>
+</ul>
+<a name="isDTypeNumerical(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDTypeNumerical</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.157">isDTypeNumerical</a>(int&nbsp;dtype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset type is numerical, i.e. a dataset contains numbers</dd></dl>
+</li>
+</ul>
+<a name="getBestDType(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBestDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.170">getBestDType</a>(int&nbsp;atype,
+               int&nbsp;btype)</pre>
+<div class="block">Find dataset type that best fits given types The best type takes into account complex and array datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>atype</code> - first dataset type</dd><dd><code>btype</code> - second dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>best dataset type</dd></dl>
+</li>
+</ul>
+<a name="getBestFloatDType(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBestFloatDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.209">getBestFloatDType</a>(int&nbsp;otype)</pre>
+<div class="block">Find floating point dataset type that best fits given types. The best type takes into account complex and array
+ datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>otype</code> - old dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>best dataset type</dd></dl>
+</li>
+</ul>
+<a name="getBestFloatDType(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBestFloatDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.248">getBestFloatDType</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;cls)</pre>
+<div class="block">Find floating point dataset type that best fits given class The best type takes into account complex and array
+ datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cls</code> - of an item or element</dd>
+<dt><span class="strong">Returns:</span></dt><dd>best dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDTypeFromClass(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTypeFromClass</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.258">getDTypeFromClass</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;cls)</pre>
+<div class="block">Get dataset type from an element class</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cls</code> - element class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDTypeFromClass(java.lang.Class, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTypeFromClass</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.268">getDTypeFromClass</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;cls,
+                    int&nbsp;isize)</pre>
+<div class="block">Get dataset type from an element class</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cls</code> - element class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDTypeFromObject(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDTypeFromObject</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.287">getDTypeFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Get dataset type from an object. The following are supported: Java Number objects, Apache common math Complex
+ objects, Java arrays and lists</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset type</dd></dl>
+</li>
+</ul>
+<a name="getDType(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.331">getDType</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;d)</pre>
+<div class="block">Get dataset type from given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset type</dd></dl>
+</li>
+</ul>
+<a name="getLargestDType(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLargestDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.344">getLargestDType</a>(int&nbsp;otype)</pre>
+<div class="block">The largest dataset type suitable for a summation of around a few thousand items without changing from the "kind"
+ of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>otype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>largest dataset type available for given dataset type</dd></dl>
+</li>
+</ul>
+<a name="getElementalDType(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementalDType</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.381">getElementalDType</a>(int&nbsp;otype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>otype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>elemental dataset type available for given dataset type</dd></dl>
+</li>
+</ul>
+<a name="isClassSupportedAsElement(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClassSupportedAsElement</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.409">isClassSupportedAsElement</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;comp)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>comp</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if supported</dd></dl>
+</li>
+</ul>
+<a name="getElementsPerItem(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.418">getElementsPerItem</a>(int&nbsp;dtype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of elements per item</dd></dl>
+</li>
+</ul>
+<a name="getItemBytes(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getItemBytes</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.440">getItemBytes</a>(int&nbsp;dtype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>length of single item in bytes</dd></dl>
+</li>
+</ul>
+<a name="getItemBytes(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getItemBytes</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.450">getItemBytes</a>(int&nbsp;dtype,
+               int&nbsp;isize)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>isize</code> - number of elements in an item</dd>
+<dt><span class="strong">Returns:</span></dt><dd>length of single item in bytes</dd></dl>
+</li>
+</ul>
+<a name="toBoolean(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toBoolean</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.492">toBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="toLong(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>public static final&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.524">toLong</a>(double&nbsp;d)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>returns a long or 0 if d is NaN or infinite</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="toLong(float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>public static final&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.535">toLong</a>(float&nbsp;d)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>returns a long or 0 if d is NaN or infinite</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="toLong(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLong</h4>
+<pre>public static&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.541">toLong</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="toReal(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toReal</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.569">toReal</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="toImag(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toImag</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.600">toImag</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+</li>
+</ul>
+<a name="toDoubleArray(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toDoubleArray</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.631">toDoubleArray</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                     int&nbsp;itemSize)</pre>
+</li>
+</ul>
+<a name="toFloatArray(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toFloatArray</h4>
+<pre>public static&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.710">toFloatArray</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                   int&nbsp;itemSize)</pre>
+</li>
+</ul>
+<a name="toLongArray(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toLongArray</h4>
+<pre>public static&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.794">toLongArray</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                 int&nbsp;itemSize)</pre>
+</li>
+</ul>
+<a name="toIntegerArray(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toIntegerArray</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.879">toIntegerArray</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                   int&nbsp;itemSize)</pre>
+</li>
+</ul>
+<a name="toShortArray(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toShortArray</h4>
+<pre>public static&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.964">toShortArray</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                   int&nbsp;itemSize)</pre>
+</li>
+</ul>
+<a name="toByteArray(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toByteArray</h4>
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1049">toByteArray</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                 int&nbsp;itemSize)</pre>
+</li>
+</ul>
+<a name="fromDoublesToBiggestPrimitives(double[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromDoublesToBiggestPrimitives</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1134">fromDoublesToBiggestPrimitives</a>(double[]&nbsp;x,
+                                    int&nbsp;dtype)</pre>
+</li>
+</ul>
+<a name="fromDoubleToBiggestNumber(double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromDoubleToBiggestNumber</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1165">fromDoubleToBiggestNumber</a>(double&nbsp;x,
+                               int&nbsp;dtype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>biggest native primitive if integer (should test for 64bit?)</dd></dl>
+</li>
+</ul>
+<a name="getLength(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre>public static final&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1186">getLength</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>length of object</dd></dl>
+</li>
+</ul>
+<a name="getElementClass(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DTypeUtils.html#line.1208">getElementClass</a>(int&nbsp;dtype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>(boxed) class of constituent element</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DTypeUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DTypeUtils.html" target="_top">Frames</a></li>
+<li><a href="DTypeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DataEvent.html b/apidocs/2.1.1/org/eclipse/january/dataset/DataEvent.html
new file mode 100644
index 0000000..46ad470
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DataEvent.html
@@ -0,0 +1,464 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DataEvent (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DataEvent (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DataEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DataEvent.html" target="_top">Frames</a></li>
+<li><a href="DataEvent.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_java.util.EventObject">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DataEvent" class="title">Class DataEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">java.util.EventObject</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DataEvent</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.25">DataEvent</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</a></pre>
+<div class="block">Event fired to diseminate information about a dataset changing.
+ For instance if an image represents a live stream.
+ 
+ This event is passed over web-sockets. To keep dependencies to a 
+ minimum and since it is really simple, we have added an encode and
+ decode to JSON without the need for an API like jackson.</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.DataEvent">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_java.util.EventObject">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;java.util.<a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true#source" title="class or interface in java.util">source</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#DataEvent()">DataEvent</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#DataEvent(java.lang.String,%20int[])">DataEvent</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                  int[]&nbsp;shape)</code>
+<div class="block">Creates an event to notify that this data has changed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#decode(java.lang.String)">decode</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;json)</code>
+<div class="block">Decodes from String for instance {"name" : "Tests", "shape" : [1024, 1024], "filepath" : "C:/tmp/Fred.txt"}</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#encode()">encode</a></strong>()</code>
+<div class="block">Encodes event to string</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getFilePath()">getFilePath</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getName()">getName</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#getSource()">getSource</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#setFilePath(java.lang.String)">setFilePath</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#setName(java.lang.String)">setName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataEvent.html#setShape(int[])">setShape</a></strong>(int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.util.EventObject">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.util.<a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true#toString()" title="class or interface in java.util">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DataEvent()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DataEvent</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.44">DataEvent</a>()</pre>
+</li>
+</ul>
+<a name="DataEvent(java.lang.String, int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DataEvent</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.52">DataEvent</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         int[]&nbsp;shape)</pre>
+<div class="block">Creates an event to notify that this data has changed.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSource()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSource</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.59">getSource</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true#getSource()" title="class or interface in java.util">getSource</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.63">getName</a>()</pre>
+</li>
+</ul>
+<a name="setName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.67">setName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.71">getShape</a>()</pre>
+</li>
+</ul>
+<a name="setShape(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setShape</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.75">setShape</a>(int[]&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="getFilePath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilePath</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.79">getFilePath</a>()</pre>
+</li>
+</ul>
+<a name="setFilePath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFilePath</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.83">setFilePath</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath)</pre>
+</li>
+</ul>
+<a name="encode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encode</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.91">encode</a>()</pre>
+<div class="block">Encodes event to string</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>encoded string</dd></dl>
+</li>
+</ul>
+<a name="decode(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decode</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.112">decode</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;json)</pre>
+<div class="block">Decodes from String for instance {"name" : "Tests", "shape" : [1024, 1024], "filepath" : "C:/tmp/Fred.txt"}</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>DataEvent</dd></dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.142">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataEvent.html#line.152">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DataEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DataEvent.html" target="_top">Frames</a></li>
+<li><a href="DataEvent.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_java.util.EventObject">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DataListenerDelegate.html b/apidocs/2.1.1/org/eclipse/january/dataset/DataListenerDelegate.html
new file mode 100644
index 0000000..076c70a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DataListenerDelegate.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DataListenerDelegate (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DataListenerDelegate (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DataListenerDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DataListenerDelegate.html" target="_top">Frames</a></li>
+<li><a href="DataListenerDelegate.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DataListenerDelegate" class="title">Class DataListenerDelegate</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DataListenerDelegate</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.19">DataListenerDelegate</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Class used by DynamicDataset to delegate</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#DataListenerDelegate()">DataListenerDelegate</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#clear()">clear</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#fire(org.eclipse.january.dataset.DataEvent)">fire</a></strong>(<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#hasDataListeners()">hasDataListeners</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DataListenerDelegate()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DataListenerDelegate</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.23">DataListenerDelegate</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="addDataListener(org.eclipse.january.dataset.IDataListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDataListener</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.27">addDataListener</a>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</pre>
+</li>
+</ul>
+<a name="removeDataListener(org.eclipse.january.dataset.IDataListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeDataListener</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.31">removeDataListener</a>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</pre>
+</li>
+</ul>
+<a name="fire(org.eclipse.january.dataset.DataEvent)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fire</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.35">fire</a>(<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</pre>
+</li>
+</ul>
+<a name="hasDataListeners()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasDataListeners</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.41">hasDataListeners</a>()</pre>
+</li>
+</ul>
+<a name="clear()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>clear</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DataListenerDelegate.html#line.45">clear</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DataListenerDelegate.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DataListenerDelegate.html" target="_top">Frames</a></li>
+<li><a href="DataListenerDelegate.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Dataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/Dataset.html
new file mode 100644
index 0000000..b28d719
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Dataset.html
@@ -0,0 +1,3612 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Dataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Dataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Dataset.html" target="_top">Frames</a></li>
+<li><a href="Dataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface Dataset" class="title">Interface Dataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a>, <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>, <a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.33">Dataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></pre>
+<div class="block"><p>
+ Interface for our implementation of dataset that adds a lot of extra functionality.
+ </p>
+ <p>
+ <b>Warning:</b>
+ It is important to note that methods (get*Abs() and set*Abs()) which use the absolute
+ index <emph>must</emph> be used with care. In (sliced) views of datasets, neighbouring
+ positions do not necessarily correspond to contiguous indexes. This is also the case
+ with multi-element (or compound) items. Therefore index iterators should be used in
+ conjunction with these methods unless the dataset can be proven to be not a view or
+ be a wholly contiguous slice of a dataset; a copy or new dataset satisfies this criterion.
+ </p></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a></strong></code>
+<div class="block">Array of 32-bit floating points</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a></strong></code>
+<div class="block">Array of 64-bit floating points</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a></strong></code>
+<div class="block">Array of signed 16-bit integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a></strong></code>
+<div class="block">Array of signed 32-bit integers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a></strong></code>
+<div class="block">Array of signed 64-bit integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a></strong></code>
+<div class="block">Array of signed 8-bit integers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a></strong></code>
+<div class="block">Boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a></strong></code>
+<div class="block">Complex floating point (same as 64-bit floating point)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a></strong></code>
+<div class="block">128-bit complex floating point (real and imaginary parts are 64-bit floats)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a></strong></code>
+<div class="block">64-bit complex floating point (real and imaginary parts are 32-bit floats)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a></strong></code>
+<div class="block">Date</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a></strong></code>
+<div class="block">Floating point (same as 64-bit floating point)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a></strong></code>
+<div class="block">32-bit floating point</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a></strong></code>
+<div class="block">64-bit floating point</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a></strong></code>
+<div class="block">Integer (same as signed 32-bit integer)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a></strong></code>
+<div class="block">Signed 16-bit integer</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a></strong></code>
+<div class="block">Signed 32-bit integer</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a></strong></code>
+<div class="block">Signed 64-bit integer</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a></strong></code>
+<div class="block">Signed 8-bit integer</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a></strong></code>
+<div class="block">Object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a></strong></code>
+<div class="block">Array of three signed 16-bit integers for RGB values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#serialVersionUID">serialVersionUID</a></strong></code>
+<div class="block">Update this when there are any serious changes to API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></strong></code>
+<div class="block">String</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a></strong>()</code>
+<div class="block">Test if all items are true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a></strong>()</code>
+<div class="block">Test if any items are true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a></strong>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a></strong>(boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a></strong>(int&nbsp;axis)</code>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a></strong>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;other,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a></strong>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a></strong>(int...&nbsp;n)</code>
+<div class="block">This method calculates the index in the data array that corresponds to
+ the given n-dimensional position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                    boolean&nbsp;value)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a></strong>()</code>
+<div class="block">Get the error for the first item.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">getError</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get the error for given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray</a></strong>(int&nbsp;i,
+                          int&nbsp;j)</code>
+<div class="block">Get the error values for given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a></strong>()</code>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a></strong>()</code>
+<div class="block">Generate an index dataset for current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a></strong>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a></strong>(int&nbsp;n)</code>
+<div class="block">This method calculates the n-dimensional position in the dataset of
+ the given index in the data array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a></strong>()</code>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets and null for null datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a></strong>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a></strong>(int[]&nbsp;pos,
+                                                boolean[]&nbsp;axes)</code>
+<div class="block">Get a slice iterator that is defined by a starting position and a set of axes to include</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place floor division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer,
+                                int...&nbsp;shape)</code>
+<div class="block">Set the buffer that backs the dataset and its shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;weight,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></strong>()</code>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer)</code>
+<div class="block">Set the buffer that backs the (squared) error data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a></strong>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnds)</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a></strong>()</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a></strong>(boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a></strong>(boolean&nbsp;showData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>getTransposedView(int...)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance</a></strong>(boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="BOOL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BOOL</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.37">BOOL</a></pre>
+<div class="block">Boolean</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.BOOL">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="INT8">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INT8</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.42">INT8</a></pre>
+<div class="block">Signed 8-bit integer</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.INT8">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="INT16">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INT16</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.47">INT16</a></pre>
+<div class="block">Signed 16-bit integer</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.INT16">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="INT32">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INT32</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.52">INT32</a></pre>
+<div class="block">Signed 32-bit integer</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.INT32">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="INT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INT</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.56">INT</a></pre>
+<div class="block">Integer (same as signed 32-bit integer)</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.INT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="INT64">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INT64</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.61">INT64</a></pre>
+<div class="block">Signed 64-bit integer</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.INT64">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="FLOAT32">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FLOAT32</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.66">FLOAT32</a></pre>
+<div class="block">32-bit floating point</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.FLOAT32">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="FLOAT64">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FLOAT64</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.71">FLOAT64</a></pre>
+<div class="block">64-bit floating point</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.FLOAT64">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="FLOAT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FLOAT</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.76">FLOAT</a></pre>
+<div class="block">Floating point (same as 64-bit floating point)</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.FLOAT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="COMPLEX64">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COMPLEX64</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.81">COMPLEX64</a></pre>
+<div class="block">64-bit complex floating point (real and imaginary parts are 32-bit floats)</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.COMPLEX64">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="COMPLEX128">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COMPLEX128</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.86">COMPLEX128</a></pre>
+<div class="block">128-bit complex floating point (real and imaginary parts are 64-bit floats)</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.COMPLEX128">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="COMPLEX">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COMPLEX</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.91">COMPLEX</a></pre>
+<div class="block">Complex floating point (same as 64-bit floating point)</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.COMPLEX">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="STRING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>STRING</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.96">STRING</a></pre>
+<div class="block">String</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.STRING">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="OBJECT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OBJECT</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.101">OBJECT</a></pre>
+<div class="block">Object</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.OBJECT">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="DATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.106">DATE</a></pre>
+<div class="block">Date</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.DATE">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYMUL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYMUL</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.108">ARRAYMUL</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYMUL">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYINT8">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYINT8</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.113">ARRAYINT8</a></pre>
+<div class="block">Array of signed 8-bit integers</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYINT8">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYINT16">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYINT16</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.118">ARRAYINT16</a></pre>
+<div class="block">Array of signed 16-bit integers</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYINT16">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="RGB">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGB</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.123">RGB</a></pre>
+<div class="block">Array of three signed 16-bit integers for RGB values</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.RGB">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYINT32">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYINT32</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.128">ARRAYINT32</a></pre>
+<div class="block">Array of signed 32-bit integers</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYINT32">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYINT64">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYINT64</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.133">ARRAYINT64</a></pre>
+<div class="block">Array of signed 64-bit integers</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYINT64">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYFLOAT32">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYFLOAT32</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.138">ARRAYFLOAT32</a></pre>
+<div class="block">Array of 32-bit floating points</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYFLOAT32">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="ARRAYFLOAT64">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARRAYFLOAT64</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.143">ARRAYFLOAT64</a></pre>
+<div class="block">Array of 64-bit floating points</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.ARRAYFLOAT64">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+<a name="serialVersionUID">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialVersionUID</h4>
+<pre>static final&nbsp;long <a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.148">serialVersionUID</a></pre>
+<div class="block">Update this when there are any serious changes to API</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.Dataset.serialVersionUID">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getShapeRef()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShapeRef</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.156">getShapeRef</a>()</pre>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets and null for null datasets</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>reference of shape of dataset</dd></dl>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.161">getDType</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="getStrides()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStrides</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.166">getStrides</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a stride array (can be null)</dd></dl>
+</li>
+</ul>
+<a name="getOffset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOffset</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.171">getOffset</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>offset where dataset view begins</dd></dl>
+</li>
+</ul>
+<a name="hasFloatingPointElements()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasFloatingPointElements</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.176">hasFloatingPointElements</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset has elements which are floating point values</dd></dl>
+</li>
+</ul>
+<a name="getNbytes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNbytes</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.181">getNbytes</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>number of bytes used</dd></dl>
+</li>
+</ul>
+<a name="getBuffer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBuffer</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.186">getBuffer</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the buffer that backs the dataset</dd></dl>
+</li>
+</ul>
+<a name="overrideInternal(java.io.Serializable, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>overrideInternal</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.194">overrideInternal</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer,
+                    int...&nbsp;shape)</pre>
+<div class="block">Set the buffer that backs the dataset and its shape
+ <p>This is very, very <b>dangerous</b>. Please use carefully</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>buffer</code> - (can be null to leave unchanged)</dd><dd><code>shape</code> - (can be null to leave unchanged)</dd></dl>
+</li>
+</ul>
+<a name="synchronizedCopy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>synchronizedCopy</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.201">synchronizedCopy</a>()</pre>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.207">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getBroadcastView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBroadcastView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.212">getBroadcastView</a>(int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>view of dataset that is broadcasted to given shape</dd></dl>
+</li>
+</ul>
+<a name="toString(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.218">toString</a>(boolean&nbsp;showData)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>showData</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>string representation</dd></dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.221">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.224">squeeze</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.227">squeeze</a>(boolean&nbsp;onlyFromEnds)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">IDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.230">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">IDataset</a></code></strong></div>
+<div class="block">Clone dataset, making new copy of data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (deep) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="setDirty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDirty</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.236">setDirty</a>()</pre>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</li>
+</ul>
+<a name="getNDPosition(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNDPosition</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.246">getNDPosition</a>(int&nbsp;n)</pre>
+<div class="block">This method calculates the n-dimensional position in the dataset of
+ the given index in the data array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - The index in the array</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the corresponding [a,b,...,n] position in the dataset</dd></dl>
+</li>
+</ul>
+<a name="get1DIndex(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get1DIndex</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.256">get1DIndex</a>(int...&nbsp;n)</pre>
+<div class="block">This method calculates the index in the data array that corresponds to
+ the given n-dimensional position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - the integer array specifying the n-D position</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the data array corresponding to that location</dd></dl>
+</li>
+</ul>
+<a name="checkAxis(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkAxis</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.264">checkAxis</a>(int&nbsp;axis)</pre>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sanitized axis in range [0, rank)</dd></dl>
+</li>
+</ul>
+<a name="isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCompatibleWith</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.274">isCompatibleWith</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</pre>
+<div class="block">This method takes a dataset and checks its shape against the current dataset. If they are
+ both of the same size, then this returns true otherwise it returns false.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if shapes are compatible</dd></dl>
+</li>
+</ul>
+<a name="checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkCompatibility</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.286">checkCompatibility</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)
+                        throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
+<div class="block">This method takes a dataset and checks its shape against the current dataset. If they are
+ both of the same size, then this returns with no error, if there is a problem, then an error
+ is thrown.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>g</code> - The dataset to be compared</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - This will be thrown if there is a problem with the compatibility</dd></dl>
+</li>
+</ul>
+<a name="reshape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reshape</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.294">reshape</a>(int...&nbsp;shape)</pre>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - new shape</dd></dl>
+</li>
+</ul>
+<a name="isComplex()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isComplex</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.299">isComplex</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset is complex</dd></dl>
+</li>
+</ul>
+<a name="getRealPart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealPart</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.305">getRealPart</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>real part of dataset (if necessary, as new dataset)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getRealView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRealView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.310">getRealView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>real part of dataset as a view</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.320">getErrors</a>()</pre>
+<div class="block">Get the error array from the dataset of same shape. This will create a new dataset
+ if the error set was of lower rank</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the dataset which contains the error information (can be null)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getErrorBuffer()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorBuffer</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.327">getErrorBuffer</a>()</pre>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the dataset which contains the (squared) error information (can be null)</dd></dl>
+</li>
+</ul>
+<a name="setErrorBuffer(java.io.Serializable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setErrorBuffer</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.334">setErrorBuffer</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;buffer)</pre>
+<div class="block">Set the buffer that backs the (squared) error data</div>
+</li>
+</ul>
+<a name="copy(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.343">copy</a>(int&nbsp;dtype)</pre>
+<div class="block">Copy and cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted copy of the dataset</dd></dl>
+</li>
+</ul>
+<a name="copy(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.351">copy</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block">Copy and cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted copy of the dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.360">cast</a>(int&nbsp;dtype)</pre>
+<div class="block">Cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.368">cast</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block">Cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="cast(boolean, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.380">cast</a>(boolean&nbsp;repeat,
+           int&nbsp;dtype,
+           int&nbsp;isize)</pre>
+<div class="block">Cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>repeat</code> - </dd><dd><code>dtype</code> - dataset type</dd><dd><code>isize</code> - item size</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a converted dataset</dd></dl>
+</li>
+</ul>
+<a name="getIndices()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIndices</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.387">getIndices</a>()</pre>
+<div class="block">Generate an index dataset for current dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an index dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.390">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">IDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="transpose(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transpose</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.396">transpose</a>(int...&nbsp;axes)</pre>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>getTransposedView(int...)</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remapped copy of data</dd></dl>
+</li>
+</ul>
+<a name="swapAxes(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swapAxes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.405">swapAxes</a>(int&nbsp;axis1,
+               int&nbsp;axis2)</pre>
+<div class="block">Swap two axes in dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis1</code> - </dd><dd><code>axis2</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>swapped view of dataset</dd></dl>
+</li>
+</ul>
+<a name="flatten()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flatten</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.412">flatten</a>()</pre>
+<div class="block">Flatten shape</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a flattened dataset which is a view if dataset is contiguous otherwise is a copy</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.418">getUniqueItems</a>()</pre>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getIterator(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.425">getIterator</a>(boolean&nbsp;withPosition)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>withPosition</code> - set true if position is needed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an IndexIterator tailored for this dataset</dd></dl>
+</li>
+</ul>
+<a name="getIterator()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.430">getIterator</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an IndexIterator tailored for this dataset</dd></dl>
+</li>
+</ul>
+<a name="getPositionIterator(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPositionIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.436">getPositionIterator</a>(int...&nbsp;axes)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - axes to omit from iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a PositionIterator that misses out axes</dd></dl>
+</li>
+</ul>
+<a name="getSliceIterator(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.447">getSliceIterator</a>(int[]&nbsp;start,
+                             int[]&nbsp;stop,
+                             int[]&nbsp;step)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes</dd><dd><code>stop</code> - specifies the stopping indexes (nb, these are <b>not</b> included in the slice)</dd><dd><code>step</code> - specifies the steps in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an slice iterator that operates like an IndexIterator</dd></dl>
+</li>
+</ul>
+<a name="getSliceIterator(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.454">getSliceIterator</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>an slice iterator that operates like an IndexIterator</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="getSliceIteratorFromAxes(int[], boolean[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceIteratorFromAxes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.464">getSliceIteratorFromAxes</a>(int[]&nbsp;pos,
+                                     boolean[]&nbsp;axes)</pre>
+<div class="block">Get a slice iterator that is defined by a starting position and a set of axes to include</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd><dd><code>axes</code> - to include</dd>
+<dt><span class="strong">Returns:</span></dt><dd>slice iterator</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.475">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd><dd><code>dest</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.485">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd><dd><code>axes</code> - - true means copy</dd><dd><code>src</code> - </dd></dl>
+</li>
+</ul>
+<a name="getBooleanIterator(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBooleanIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.494">getBooleanIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</pre>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>choice</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an iterator of dataset that visits items chosen by given choice dataset</dd></dl>
+</li>
+</ul>
+<a name="getBooleanIterator(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBooleanIterator</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.504">getBooleanIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                 boolean&nbsp;value)</pre>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>choice</code> - </dd><dd><code>value</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an iterator of dataset that visits items chosen by given choice dataset</dd></dl>
+</li>
+</ul>
+<a name="getByBoolean(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByBoolean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.513">getByBoolean</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.525">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBy1DIndex</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.534">getBy1DIndex</a>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</pre>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by indices</dd></dl>
+</li>
+</ul>
+<a name="getByIndexes(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByIndexes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.544">getByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The new selected dataset by index</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.556">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.569">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                   <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.577">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.585">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.593">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.601">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.609">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.617">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.625">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd><dd><code>obj</code> - </dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.632">getObject</a>()</pre>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.639">getObject</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.647">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.654">getString</a>()</pre>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.661">getString</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.669">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.676">getDouble</a>()</pre>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.683">getDouble</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.691">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.698">getFloat</a>()</pre>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.705">getFloat</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.713">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.720">getLong</a>()</pre>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.727">getLong</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.735">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.742">getInt</a>()</pre>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.749">getInt</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.757">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.764">getShort</a>()</pre>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.771">getShort</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.779">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.786">getByte</a>()</pre>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.793">getByte</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.801">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.808">getBoolean</a>()</pre>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.815">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.823">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getError()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.830">getError</a>()</pre>
+<div class="block">Get the error for the first item. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getError(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.837">getError</a>(int&nbsp;i)</pre>
+<div class="block">Get the error for given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getError(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.845">getError</a>(int&nbsp;i,
+              int&nbsp;j)</pre>
+<div class="block">Get the error for given position. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.852">getErrorArray</a>(int&nbsp;i)</pre>
+<div class="block">Get the error values for given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.860">getErrorArray</a>(int&nbsp;i,
+                     int&nbsp;j)</pre>
+<div class="block">Get the error values for given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.867">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.874">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.882">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.891">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.894">getSlice</a>(int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.897">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.900">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.903">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.906">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.909">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+               <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.912">getSliceView</a>(int[]&nbsp;start,
+                   int[]&nbsp;stop,
+                   int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.915">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.918">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">IDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.934">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)</pre>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>start</code> - specifies the starting indexes</dd><dd><code>stop</code> - specifies the stopping indexes (nb, these are <b>not</b> included in the slice)</dd><dd><code>step</code> - specifies the steps in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.942">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dd><code>slice</code> - </dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.950">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">This is modelled after the NumPy array slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dd><code>slice</code> - </dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.960">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>iterator</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.969">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;other,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>other</code> - </dd><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="all()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>all</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.974">all</a>()</pre>
+<div class="block">Test if all items are true</div>
+</li>
+</ul>
+<a name="all(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>all</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.980">all</a>(int&nbsp;axis)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if all items along axis are true</dd></dl>
+</li>
+</ul>
+<a name="any()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>any</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.985">any</a>()</pre>
+<div class="block">Test if any items are true</div>
+</li>
+</ul>
+<a name="any(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>any</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.991">any</a>(int&nbsp;axis)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where items are true if any items along axis are true</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.999">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1007">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1015">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1023">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloorDivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloorDivide</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1031">ifloorDivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place floor division with object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1038">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1045">ifloor</a>()</pre>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1053">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>residual</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1062">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>residual</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1071">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block">Calculate residual of dataset with object o</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>residual</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1082">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;weight,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd><dd><code>weight</code> - </dd><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1087">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1092">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1097">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="max(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1107">max</a>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>maxima along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="min(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1115">min</a>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>minima along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="argMax(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMax</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1123">argMax</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Find absolute index of maximum value (in a flattened view)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="argMax(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMax</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1132">argMax</a>(int&nbsp;axis,
+             boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Find indices of maximum values along given axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>index dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="argMin(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMin</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1140">argMin</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Find absolute index of minimum value (in a flattened view)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="argMin(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>argMin</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1149">argMin</a>(int&nbsp;axis,
+             boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Find indices of minimum values along given axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>index dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="peakToPeak(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peakToPeak</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1156">peakToPeak</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>peak-to-peak value, the difference of maximum and minimum of dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="peakToPeak(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peakToPeak</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1164">peakToPeak</a>(int&nbsp;axis,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>peak-to-peak dataset, the difference of maxima and minima of dataset along axis</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="count(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>count</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1171">count</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of items in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="count(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>count</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1179">count</a>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of items along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="sum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1186">sum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum over all items in dataset as a Double, array of doubles or a complex number</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="sum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1194">sum</a>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="product(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1201">product</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product over all items in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="product(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1209">product</a>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="mean(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1217">mean</a>(int&nbsp;axis,
+           boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="variance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1224">variance</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sample variance of whole dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1251">variance</a>(boolean&nbsp;isWholePopulation,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">The sample variance can be calculated in two ways: if the dataset is considered as the
+ entire population then the sample variance is simply the second central moment:
+ 
+ <pre>
+    sum((x_i - m)^2)/N
+ where {x_i} are set of N population values and m is the mean
+    m = sum(x_i)/N
+ </pre>
+ 
+ Otherwise, if the dataset is a set of samples (with replacement) from the population then
+ 
+ <pre>
+    sum((x_i - m)^2)/(N-1)
+ where {x_i} are set of N sample values and m is the unbiased estimate of the mean
+    m = sum(x_i)/N
+ </pre>
+ 
+ Note that the second definition is also the unbiased estimator of population variance.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isWholePopulation</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="variance(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1258">variance</a>(int&nbsp;axis)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="variance(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variance</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1268">variance</a>(int&nbsp;axis,
+               boolean&nbsp;isWholePopulation,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>isWholePopulation</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample variance along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1277">stdDeviation</a>()</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sample standard deviation of all items in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1288">stdDeviation</a>(boolean&nbsp;isWholePopulation,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isWholePopulation</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sample standard deviation of all items in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>variance(boolean, boolean...)</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1297">stdDeviation</a>(int&nbsp;axis)</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="stdDeviation(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stdDeviation</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1309">stdDeviation</a>(int&nbsp;axis,
+                   boolean&nbsp;isWholePopulation,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block">Standard deviation is square root of the variance</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>isWholePopulation</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>standard deviation along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd>
+<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)"><code>with isWholePopulation = false</code></a></dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1316">rootMeanSquare</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="rootMeanSquare(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>rootMeanSquare</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Dataset.html#line.1324">rootMeanSquare</a>(int&nbsp;axis,
+                     boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>root mean square along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Dataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Dataset.html" target="_top">Frames</a></li>
+<li><a href="Dataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DatasetFactory.html b/apidocs/2.1.1/org/eclipse/january/dataset/DatasetFactory.html
new file mode 100644
index 0000000..03d2d70
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DatasetFactory.html
@@ -0,0 +1,1387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DatasetFactory (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DatasetFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DatasetFactory.html" target="_top">Frames</a></li>
+<li><a href="DatasetFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DatasetFactory" class="title">Class DatasetFactory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DatasetFactory</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.19">DatasetFactory</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#DatasetFactory()">DatasetFactory</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20java.lang.Class,%20int...)">compoundZeros</a></strong>(int&nbsp;itemSize,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20int[],%20int)">compoundZeros</a></strong>(int&nbsp;itemSize,
+                          int[]&nbsp;shape,
+                          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#compoundZeros(int, Class, int)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)">createComplexDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;real,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</code>
+<div class="block">Create complex dataset of given class from real and imaginary parts</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(int,%20java.lang.Object,%20java.lang.Object)">createComplexDataset</a></strong>(int&nbsp;dtype,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;real,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)"><code>createComplexDataset(Class, Object, Object)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block">Create compound dataset of given class from given parts</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(int,%20java.lang.Object...)">createCompoundDataset</a></strong>(int&nbsp;dtype,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)"><code>createCompoundDataset(Class, Object...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Object...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block">Create compound dataset of given type from given parts</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)">createFromList</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</code>
+<div class="block">Create dataset of given class from list</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(int,%20java.util.List)">createFromList</a></strong>(int&nbsp;dtype,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)"><code>createFromList(Class, List&lt;?&gt;)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.util.List)">createFromList</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</code>
+<div class="block">Create dataset of appropriate type from list</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(boolean,%20java.lang.Object)">createFromObject</a></strong>(boolean&nbsp;isUnsigned,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block">Create a compound dataset from object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20int,%20java.lang.Object,%20int...)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)"><code>createFromObject(int, Class, Object, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#createFromObject(Class, Object, int)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object,%20int...)">createFromObject</a></strong>(int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)"><code>createFromObject(Class, Object, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Object)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Object,%20int...)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)">createLinearSpace</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                  double&nbsp;start,
+                                  double&nbsp;stop,
+                                  int&nbsp;length)</code>
+<div class="block">Create a 1D dataset of linearly spaced values in closed interval</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(double,%20double,%20int,%20int)">createLinearSpace</a></strong>(double&nbsp;start,
+                                  double&nbsp;stop,
+                                  int&nbsp;length,
+                                  int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)"><code>createLinearSpace(Class, double, double, int)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)">createLogSpace</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            double&nbsp;start,
+                            double&nbsp;stop,
+                            int&nbsp;length,
+                            double&nbsp;base)</code>
+<div class="block">Create a 1D dataset of logarithmically spaced values in closed interval.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(double,%20double,%20int,%20double,%20int)">createLogSpace</a></strong>(double&nbsp;start,
+                            double&nbsp;stop,
+                            int&nbsp;length,
+                            double&nbsp;base,
+                            int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)"><code>createLogSpace(Class, double, double, int, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)">createRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)">createRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double)">createRange</a></strong>(double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double)">createRange</a></strong>(double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double,%20int)">createRange</a></strong>(double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20int)">createRange</a></strong>(double&nbsp;stop,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)"><code>createRange(Class, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20java.lang.Class,%20double)">createRange</a></strong>(int&nbsp;itemSize,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;stop)</code>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20java.lang.Class,%20double,%20double,%20double)">createRange</a></strong>(int&nbsp;itemSize,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step)</code>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20double,%20double,%20int)">createRange</a></strong>(int&nbsp;itemSize,
+                      double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20int)">createRange</a></strong>(int&nbsp;itemSize,
+                      double&nbsp;stop,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)">ones</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">ones</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20int)">ones</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int...)">ones</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int[],%20int)">ones</a></strong>(int[]&nbsp;shape,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#ones(int[], Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20java.lang.Class,%20int...)">ones</a></strong>(int&nbsp;itemSize,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20int[],%20int)">ones</a></strong>(int&nbsp;itemSize,
+        int[]&nbsp;shape,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)"><code>ones(Class, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(T)">ones</a></strong>(T&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)">zeros</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">zeros</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20int)">zeros</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)"><code>zeros(Dataset, Class)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int...)">zeros</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int[],%20int)">zeros</a></strong>(int[]&nbsp;shape,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)"><code>zeros(Class, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)">zeros</a></strong>(int&nbsp;itemSize,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20int[],%20int)">zeros</a></strong>(int&nbsp;itemSize,
+          int[]&nbsp;shape,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)"><code>zeros(int, Class, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(T)">zeros</a></strong>(T&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DatasetFactory()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DatasetFactory</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.19">DatasetFactory</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createRange(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.26">createRange</a>(double&nbsp;stop)</pre>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new double dataset of given shape and type, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createRange(double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.38">createRange</a>(double&nbsp;start,
+                        double&nbsp;stop,
+                        double&nbsp;step)</pre>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>step</code> - spacing between items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 1D dataset of given type, filled with values determined by parameters</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createRange(double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.52">createRange</a>(double&nbsp;stop,
+                             int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)"><code>createRange(Class, double)</code></a></i></div>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and type, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createRange(double, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.68">createRange</a>(double&nbsp;start,
+                             double&nbsp;stop,
+                             double&nbsp;step,
+                             int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>step</code> - spacing between items</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 1D dataset of given type, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createRange(int, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.107">createRange</a>(int&nbsp;itemSize,
+                                     double&nbsp;stop,
+                                     int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+<div class="block">Create compound dataset with items of given size ranging from 0 up to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and type, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createRange(int, double, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.124">createRange</a>(int&nbsp;itemSize,
+                                     double&nbsp;start,
+                                     double&nbsp;stop,
+                                     double&nbsp;step,
+                                     int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+<div class="block">Create compound dataset with items of given size ranging from given start up to given stop in given steps</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>step</code> - spacing between items</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 1D dataset of given type, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.174">createFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - can be Java list, array or Number</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.186">createFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       int...&nbsp;shape)</pre>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - can be Java list, array or Number</dd><dd><code>shape</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(boolean, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.210">createFromObject</a>(boolean&nbsp;isUnsigned,
+                       <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isUnsigned</code> - if true, interpret integer values as unsigned by increasing element bit width if required</dd><dd><code>obj</code> - can be a Java list, array or Number</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.230">createFromObject</a>(int&nbsp;dtype,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#createFromObject(Class, Object, int)</code></i></div>
+<div class="block">Create a dataset from object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>obj</code> - can be a Java list, array or Number</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset type is not known</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.247">createFromObject</a>(int&nbsp;dtype,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                  int...&nbsp;shape)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)"><code>createFromObject(Class, Object, int...)</code></a></i></div>
+<div class="block">Create a dataset from object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>obj</code> - can be a Java list, array or Number</dd><dd><code>shape</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset type is not known</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, int, java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.265">createFromObject</a>(int&nbsp;itemSize,
+                                  int&nbsp;dtype,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                  int...&nbsp;shape)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)"><code>createFromObject(int, Class, Object, int...)</code></a></i></div>
+<div class="block">Create a dataset from object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>dtype</code> - </dd><dd><code>obj</code> - can be a Java list, array or Number</dd><dd><code>shape</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset type is not known</dd></dl>
+</li>
+</ul>
+<a name="createFromList(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromList</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.389">createFromList</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</pre>
+<div class="block">Create dataset of appropriate type from list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>objectList</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset filled with values from list</dd></dl>
+</li>
+</ul>
+<a name="createFromList(int, java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromList</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.425">createFromList</a>(int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)"><code>createFromList(Class, List&lt;?&gt;)</code></a></i></div>
+<div class="block">Create dataset of given type from list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>objectList</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset filled with values from list</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.441">createCompoundDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</pre>
+<div class="block">Create compound dataset of given type from given parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>objects</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(int, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.460">createCompoundDataset</a>(int&nbsp;dtype,
+                                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)"><code>createCompoundDataset(Class, Object...)</code></a></i></div>
+<div class="block">Create compound dataset of given type from given parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>objects</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="createComplexDataset(int, java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createComplexDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.480">createComplexDataset</a>(int&nbsp;dtype,
+                                              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;real,
+                                              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)"><code>createComplexDataset(Class, Object, Object)</code></a></i></div>
+<div class="block">Create complex dataset of given type from real and imaginary parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>real</code> - </dd><dd><code>imag</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>complex dataset</dd></dl>
+</li>
+</ul>
+<a name="zeros(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.495">zeros</a>(int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new double dataset of given shape, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="zeros(int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.508">zeros</a>(int[]&nbsp;shape,
+                       int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)"><code>zeros(Class, int...)</code></a></i></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and type, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="zeros(int, int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.557">zeros</a>(int&nbsp;itemSize,
+                       int[]&nbsp;shape,
+                       int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)"><code>zeros(int, Class, int...)</code></a></i></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - if equal to 1, then non-compound dataset is returned</dd><dd><code>shape</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given item size, shape and type, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="compoundZeros(int, int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compoundZeros</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.575">compoundZeros</a>(int&nbsp;itemSize,
+                                       int[]&nbsp;shape,
+                                       int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#compoundZeros(int, Class, int)</code></i></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>shape</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given item size, shape and type, filled with zeros</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="zeros(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="zeros(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.619">zeros</a>(T&nbsp;dataset)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of same shape and type as input dataset, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="zeros(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.636">zeros</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                       int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)"><code>zeros(Dataset, Class)</code></a></i></div>
+<div class="block">Create a new dataset of same shape as input dataset, filled with zeros. If dtype is not
+ explicitly compound then an elemental dataset is created</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset</dd></dl>
+</li>
+</ul>
+<a name="ones(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="ones(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.648">ones</a>(T&nbsp;dataset)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of same shape and type as input dataset, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="ones(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.663">ones</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                      int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>createRange(Class, double, double, double)</code></a></i></div>
+<div class="block">Create a new dataset of same shape as input dataset, filled with ones. If dtype is not
+ explicitly compound then an elemental dataset is created</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset</dd></dl>
+</li>
+</ul>
+<a name="ones(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.674">ones</a>(int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new double dataset of given shape, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="ones(int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.687">ones</a>(int[]&nbsp;shape,
+                      int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#ones(int[], Class)</code></i></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and type, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="ones(int, int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.724">ones</a>(int&nbsp;itemSize,
+                      int[]&nbsp;shape,
+                      int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)"><code>ones(Class, int...)</code></a></i></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - if equal to 1, then non-compound dataset is returned</dd><dd><code>shape</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given item size, shape and type, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="createLinearSpace(double, double, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLinearSpace</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.779">createLinearSpace</a>(double&nbsp;start,
+                                   double&nbsp;stop,
+                                   int&nbsp;length,
+                                   int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)"><code>createLinearSpace(Class, double, double, int)</code></a></i></div>
+<div class="block">Create a 1D dataset of linearly spaced values in closed interval</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is included</dd><dd><code>length</code> - number of points</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with linearly spaced values</dd></dl>
+</li>
+</ul>
+<a name="createLogSpace(double, double, int, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLogSpace</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.815">createLogSpace</a>(double&nbsp;start,
+                                double&nbsp;stop,
+                                int&nbsp;length,
+                                double&nbsp;base,
+                                int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)"><code>createLogSpace(Class, double, double, int, double)</code></a></i></div>
+<div class="block">Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to
+ determine the factor between values: factor = base ** step, where step is the interval between linearly
+ spaced sequence of points</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is included</dd><dd><code>length</code> - number of points</dd><dd><code>base</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with logarithmically spaced values</dd></dl>
+</li>
+</ul>
+<a name="createRange(java.lang.Class, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.841">createRange</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                double&nbsp;stop)</pre>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and type, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createRange(java.lang.Class, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.854">createRange</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                double&nbsp;start,
+                                double&nbsp;stop,
+                                double&nbsp;step)</pre>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>step</code> - spacing between items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 1D dataset of given class, filled with values determined by parameters</dd></dl>
+</li>
+</ul>
+<a name="createRange(int, java.lang.Class, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.867">createRange</a>(int&nbsp;itemSize,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                        double&nbsp;stop)</pre>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>clazz</code> - compound dataset class</dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 1D dataset of given class, filled with values determined by parameters</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createRange(int, java.lang.Class, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRange</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.882">createRange</a>(int&nbsp;itemSize,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                        double&nbsp;start,
+                                        double&nbsp;stop,
+                                        double&nbsp;step)</pre>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>clazz</code> - compound dataset class</dd><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is <strong>not</strong> included</dd><dd><code>step</code> - spacing between items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 1D dataset of given class, filled with values determined by parameters</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(java.lang.Class, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.896">createFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a dataset from object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>obj</code> - can be a Java list, array or Number</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset class is not known</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(java.lang.Class, java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.911">createFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                     int...&nbsp;shape)</pre>
+<div class="block">Create a dataset from object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>obj</code> - can be a Java list, array or Number</dd><dd><code>shape</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset type is not known</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(int, java.lang.Class, java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.926">createFromObject</a>(int&nbsp;itemSize,
+                                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                     int...&nbsp;shape)</pre>
+<div class="block">Create a compound dataset from object</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>clazz</code> - dataset class</dd><dd><code>obj</code> - can be a Java list, array or Number</dd><dd><code>shape</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if dataset type is not known</dd></dl>
+</li>
+</ul>
+<a name="createFromList(java.lang.Class, java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromList</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.938">createFromList</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                   <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</pre>
+<div class="block">Create dataset of given class from list</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>objectList</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset filled with values from list</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(java.lang.Class, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.950">createCompoundDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</pre>
+<div class="block">Create compound dataset of given class from given parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd><dd><code>objects</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="createComplexDataset(java.lang.Class, java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createComplexDataset</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.963">createComplexDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;real,
+                                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</pre>
+<div class="block">Create complex dataset of given class from real and imaginary parts</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>real</code> - </dd><dd><code>imag</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>complex dataset</dd></dl>
+</li>
+</ul>
+<a name="zeros(java.lang.Class, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.973">zeros</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                          int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and class, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="zeros(int, java.lang.Class, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.985">zeros</a>(int&nbsp;itemSize,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                          int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - if equal to 1, then non-compound dataset is returned</dd><dd><code>clazz</code> - dataset class</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given item size, shape and class, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="zeros(org.eclipse.january.dataset.Dataset, java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>zeros</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.995">zeros</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given class with same shape as input dataset, filled with zeros</dd></dl>
+</li>
+</ul>
+<a name="compoundZeros(int, java.lang.Class, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compoundZeros</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.1007">compoundZeros</a>(int&nbsp;itemSize,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - </dd><dd><code>clazz</code> - compound dataset class</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new compound dataset of given item size, shape and class, filled with zeros</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="ones(java.lang.Class, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.1017">ones</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                         int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given shape and class, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="ones(int, java.lang.Class, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.1029">ones</a>(int&nbsp;itemSize,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                         int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>itemSize</code> - if equal to 1, then non-compound dataset is returned</dd><dd><code>clazz</code> - dataset class</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given item size, shape and class, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="ones(org.eclipse.january.dataset.Dataset, java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ones</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.1039">ones</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd><dd><code>clazz</code> - dataset class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new dataset of given class with same shape as input dataset, filled with ones</dd></dl>
+</li>
+</ul>
+<a name="createLinearSpace(java.lang.Class, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLinearSpace</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.1053">createLinearSpace</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                      double&nbsp;start,
+                                      double&nbsp;stop,
+                                      int&nbsp;length)</pre>
+<div class="block">Create a 1D dataset of linearly spaced values in closed interval</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is included</dd><dd><code>length</code> - number of points</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with linearly spaced values</dd></dl>
+</li>
+</ul>
+<a name="createLogSpace(java.lang.Class, double, double, int, double)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createLogSpace</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetFactory.html#line.1069">createLogSpace</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                   double&nbsp;start,
+                                   double&nbsp;stop,
+                                   int&nbsp;length,
+                                   double&nbsp;base)</pre>
+<div class="block">Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to
+ determine the factor between values: factor = base ** step, where step is the interval between linearly
+ spaced sequence of points</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - stop value is included</dd><dd><code>length</code> - number of points</dd><dd><code>base</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with logarithmically spaced values</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DatasetFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DatasetFactory.html" target="_top">Frames</a></li>
+<li><a href="DatasetFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DatasetUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/DatasetUtils.html
new file mode 100644
index 0000000..73627aa
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DatasetUtils.html
@@ -0,0 +1,1760 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DatasetUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DatasetUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DatasetUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DatasetUtils.html" target="_top">Frames</a></li>
+<li><a href="DatasetUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DatasetUtils" class="title">Class DatasetUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DatasetUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.31">DatasetUtils</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utilities for manipulating datasets</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#utilsLogger">utilsLogger</a></strong></code>
+<div class="block">Setup the logging facilities</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#DatasetUtils()">DatasetUtils</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#append(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20int)">append</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;b,
+            int&nbsp;axis)</code>
+<div class="block">Append copy of dataset with another dataset along n-th axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions(java.util.List,%20int[],%20int...)">calcIndexesFromPositions</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;positions,
+                                                int[]&nbsp;shape,
+                                                int...&nbsp;mode)</code>
+<div class="block">Calculate indexes in given shape from datasets of position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes(org.eclipse.january.dataset.Dataset,%20int[])">calcPositionsFromIndexes</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+                                                int[]&nbsp;shape)</code>
+<div class="block">Calculate positions in given shape from a dataset of 1-D indexes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.Dataset[],%20int)">cast</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;a,
+        int&nbsp;dtype)</code>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20boolean,%20int,%20int)">cast</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20int)">cast</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#centroid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">centroid</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;bases)</code>
+<div class="block">Get the centroid value of a dataset, this function works out the centroid in every direction</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#choose(org.eclipse.january.dataset.IntegerDataset,%20java.lang.Object[],%20boolean,%20boolean)">choose</a></strong>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+            boolean&nbsp;throwAIOOBE,
+            boolean&nbsp;clip)</code>
+<div class="block">Choose content from choices where condition is true, otherwise use default.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#coerce(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">coerce</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a copy that has been coerced to an appropriate dataset type
+ depending on the input object's class</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#concatenate(org.eclipse.january.dataset.IDataset[],%20int)">concatenate</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>[]&nbsp;as,
+                      int&nbsp;axis)</code>
+<div class="block">Concatenate the set of datasets along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#convertToDataset(org.eclipse.january.dataset.IDataset)">convertToDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>
+<div class="block">Convert (if necessary) a dataset obeying the interface to our implementation</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#copy(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#copy(org.eclipse.january.dataset.IDataset,%20int)">copy</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(java.lang.Class,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset,%20int)">createCompoundDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                          int&nbsp;itemSize)</code>
+<div class="block">Create a compound dataset from given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(int,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(int&nbsp;dtype,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetFromLastAxis</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                  boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset by using last axis as elements of an item</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset,%20boolean)">createDatasetFromCompoundDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+                                                                boolean&nbsp;shareData)</code>
+<div class="block">Create a dataset from a compound dataset by using elements of an item as last axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#createJavaArray(org.eclipse.january.dataset.Dataset)">createJavaArray</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Create Java array (of arrays) from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double)">crossings</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;xAxis,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;yAxis,
+                  double&nbsp;yValue)</code>
+<div class="block">Find x values of all the crossing points of the dataset with the given y value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)">crossings</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;xAxis,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;yAxis,
+                  double&nbsp;yValue,
+                  double&nbsp;xRangeProportion)</code>
+<div class="block">Function that uses the crossings function but prunes the result, so that multiple crossings within a
+ certain proportion of the overall range of the x values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20double)">crossings</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                  double&nbsp;value)</code>
+<div class="block">Find linearly-interpolated crossing points where the given dataset crosses the given value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#diag(T,%20int)">diag</a></strong>(T&nbsp;a,
+        int&nbsp;offset)</code>
+<div class="block">Create a (off-)diagonal matrix from items in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#extract(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset)">extract</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+              <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;condition)</code>
+<div class="block">Extract values where condition is non-zero.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#eye(int,%20int,%20int,%20int)">eye</a></strong>(int&nbsp;rows,
+      int&nbsp;cols,
+      int&nbsp;offset,
+      int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findFirstOccurrences</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</code>
+<div class="block">Find first occurrences in one dataset of values given in another sorted dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexEqualTo</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is equal to given number</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findIndexesForValues</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</code>
+<div class="block">Find indexes in sorted dataset of values for each value in other dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThan(org.eclipse.january.dataset.Dataset,%20double)">findIndexGreaterThan</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is greater than given number</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThanOrEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexGreaterThanOrEqualTo</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                          double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is greater than or equal to given number</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThan(org.eclipse.january.dataset.Dataset,%20double)">findIndexLessThan</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is less than given number</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThanOrEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexLessThanOrEqualTo</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                    double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is less than or equal to given number</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#flipLeftRight(T)">flipLeftRight</a></strong>(T&nbsp;a)</code>
+<div class="block">Flip items in left/right direction, column-wise, or along second axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#flipUpDown(T)">flipUpDown</a></strong>(T&nbsp;a)</code>
+<div class="block">Flip items in up/down direction, row-wise, or along first axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#indexSort(org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">indexSort</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Indirectly sort along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#indices(int...)">indices</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Generate an index dataset for given dataset where sub-datasets contain index values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#lnnorm(org.eclipse.january.dataset.Dataset)">lnnorm</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a natural log scale</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#lognorm(org.eclipse.january.dataset.Dataset)">lognorm</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a log10 scale</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#makeFinite(org.eclipse.january.dataset.Dataset)">makeFinite</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Make floating point datasets contain only finite values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset)">makeUnsigned</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset,%20boolean)">makeUnsigned</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                        boolean&nbsp;check)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#meshGrid(org.eclipse.january.dataset.Dataset...)">meshGrid</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;axes)</code>
+<div class="block">Construct a list of datasets where each represents a coordinate varying over the hypergrid
+ formed by the input list of axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.CompoundDataset,%20boolean)">norm</a></strong>(<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+        boolean&nbsp;overAllElements)</code>
+<div class="block">Function that returns a normalised compound dataset which is bounded between 0 and 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.Dataset)">norm</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#put(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Object)">put</a></strong>(T&nbsp;a,
+      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</code>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#put(T,%20int[],%20java.lang.Object)">put</a></strong>(T&nbsp;a,
+      int[]&nbsp;indices,
+      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</code>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#removeNansAndInfinities(org.eclipse.january.dataset.Dataset,%20java.lang.Number)">removeNansAndInfinities</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;value)</code>
+<div class="block">Removes NaNs and infinities from floating point datasets.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#repeat(T,%20int[],%20int)">repeat</a></strong>(T&nbsp;a,
+            int[]&nbsp;repeats,
+            int&nbsp;axis)</code>
+<div class="block">Constructs a dataset which has its elements along an axis replicated from
+ the original dataset by the number of times given in the repeats array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#resize(T,%20int...)">resize</a></strong>(T&nbsp;a,
+            int...&nbsp;shape)</code>
+<div class="block">Resize a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#roll(T,%20int,%20java.lang.Integer)">roll</a></strong>(T&nbsp;a,
+        int&nbsp;shift,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Roll items over given axis by given amount</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#rollAxis(T,%20int,%20int)">rollAxis</a></strong>(T&nbsp;a,
+                int&nbsp;axis,
+                int&nbsp;start)</code>
+<div class="block">Roll the specified axis backwards until it lies in given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90(T)">rotate90</a></strong>(T&nbsp;a)</code>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90(T,%20int)">rotate90</a></strong>(T&nbsp;a,
+                int&nbsp;k)</code>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset[],%20java.lang.Object[],%20java.lang.Object)">select</a></strong>(<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>[]&nbsp;conditions,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;def)</code>
+<div class="block">Select content from choices where condition is true, otherwise use default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset,%20java.lang.Object,%20java.lang.Object)">select</a></strong>(<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;condition,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;x,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;y)</code>
+<div class="block">Select content according where condition is true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#serializeDataset(org.eclipse.january.dataset.IDataset)">serializeDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>
+<div class="block">Serialize dataset by flattening it.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset(org.eclipse.january.dataset.ILazyDataset)">sliceAndConvertLazyDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazy)</code>
+<div class="block">Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and
+ convert to our dataset implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">sort</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;b)</code>
+<div class="block">Sort in place given dataset and reorder ancillary datasets too</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(T)">sort</a></strong>(T&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(T,%20java.lang.Integer)">sort</a></strong>(T&nbsp;a,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int[],%20int)">split</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int[]&nbsp;indices,
+          int&nbsp;axis)</code>
+<div class="block">Split a dataset into parts along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean)">split</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;sections,
+          int&nbsp;axis,
+          boolean&nbsp;checkEqual)</code>
+<div class="block">Split a dataset into equal sections along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#swapAxes(org.eclipse.january.dataset.IDataset,%20int,%20int)">swapAxes</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#take(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">take</a></strong>(T&nbsp;a,
+        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Take items from dataset along an axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#take(T,%20int[],%20java.lang.Integer)">take</a></strong>(T&nbsp;a,
+        int[]&nbsp;indices,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Take items from dataset along an axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#tile(org.eclipse.january.dataset.IDataset,%20int...)">tile</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+        int...&nbsp;reps)</code>
+<div class="block">Construct a dataset that contains the original dataset repeated the number
+ of times in each axis given by corresponding entries in the reps array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#transpose(org.eclipse.january.dataset.IDataset,%20int...)">transpose</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                  int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html#unwrapUnsigned(org.eclipse.january.dataset.Dataset,%20int)">unwrapUnsigned</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            int&nbsp;bitWidth)</code>
+<div class="block">Unwrap dataset elements so that all elements are unsigned</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="utilsLogger">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>utilsLogger</h4>
+<pre>protected static final transient&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.36">utilsLogger</a></pre>
+<div class="block">Setup the logging facilities</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DatasetUtils()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DatasetUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.31">DatasetUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="append(org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.IDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.47">append</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+             <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;b,
+             int&nbsp;axis)</pre>
+<div class="block">Append copy of dataset with another dataset along n-th axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>axis</code> - number of axis (negative number counts from last)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>appended dataset</dd></dl>
+</li>
+</ul>
+<a name="put(org.eclipse.january.dataset.Dataset,org.eclipse.january.dataset.Dataset,java.lang.Object)">
+<!--   -->
+</a><a name="put(T, org.eclipse.january.dataset.Dataset, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.93">put</a>(T&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</pre>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>indices</code> - dataset interpreted as integers</dd><dd><code>values</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>changed dataset</dd></dl>
+</li>
+</ul>
+<a name="put(org.eclipse.january.dataset.Dataset,int[],java.lang.Object)">
+<!--   -->
+</a><a name="put(T, int[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.113">put</a>(T&nbsp;a,
+                        int[]&nbsp;indices,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</pre>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>indices</code> - </dd><dd><code>values</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>changed dataset</dd></dl>
+</li>
+</ul>
+<a name="take(org.eclipse.january.dataset.Dataset,org.eclipse.january.dataset.Dataset,java.lang.Integer)">
+<!--   -->
+</a><a name="take(T, org.eclipse.january.dataset.Dataset, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>take</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.131">take</a>(T&nbsp;a,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block">Take items from dataset along an axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>indices</code> - dataset interpreted as integers</dd><dd><code>axis</code> - if null, then use flattened view</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a sub-array</dd></dl>
+</li>
+</ul>
+<a name="take(org.eclipse.january.dataset.Dataset,int[],java.lang.Integer)">
+<!--   -->
+</a><a name="take(T, int[], java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>take</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.143">take</a>(T&nbsp;a,
+                         int[]&nbsp;indices,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block">Take items from dataset along an axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>indices</code> - </dd><dd><code>axis</code> - if null, then use flattened view</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a sub-array</dd></dl>
+</li>
+</ul>
+<a name="tile(org.eclipse.january.dataset.IDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tile</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.197">tile</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+           int...&nbsp;reps)</pre>
+<div class="block">Construct a dataset that contains the original dataset repeated the number
+ of times in each axis given by corresponding entries in the reps array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>reps</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>tiled dataset</dd></dl>
+</li>
+</ul>
+<a name="transpose(org.eclipse.january.dataset.IDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transpose</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.300">transpose</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                int...&nbsp;axes)</pre>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension
+ running along the old dataset's 2nd dimension and the new 2nd is the old 1st.
+ The 3rd dimension is left unchanged.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axes</code> - if null or zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped copy of data</dd></dl>
+</li>
+</ul>
+<a name="swapAxes(org.eclipse.january.dataset.IDataset, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>swapAxes</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.311">swapAxes</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+               int&nbsp;axis1,
+               int&nbsp;axis2)</pre>
+<div class="block">Swap two axes in dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis1</code> - </dd><dd><code>axis2</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>swapped dataset</dd></dl>
+</li>
+</ul>
+<a name="sort(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="sort(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.319">sort</a>(T&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted flattened copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="sort(org.eclipse.january.dataset.Dataset,java.lang.Integer)">
+<!--   -->
+</a><a name="sort(T, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.328">sort</a>(T&nbsp;a,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - to sort along, if null then dataset is first flattened</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset sorted along axis</dd></dl>
+</li>
+</ul>
+<a name="sort(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.338">sort</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;b)</pre>
+<div class="block">Sort in place given dataset and reorder ancillary datasets too</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset to be sorted</dd><dd><code>b</code> - ancillary datasets</dd></dl>
+</li>
+</ul>
+<a name="indexSort(org.eclipse.january.dataset.Dataset, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>indexSort</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.382">indexSort</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                       <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block">Indirectly sort along given axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset whose indexes will be sorted</dd><dd><code>axis</code> - to sort along, if null then dataset is first flattened</dd>
+<dt><span class="strong">Returns:</span></dt><dd>indexes</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="concatenate(org.eclipse.january.dataset.IDataset[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>concatenate</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.447">concatenate</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>[]&nbsp;as,
+                  int&nbsp;axis)</pre>
+<div class="block">Concatenate the set of datasets along given axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>as</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>concatenated dataset</dd></dl>
+</li>
+</ul>
+<a name="split(org.eclipse.january.dataset.Dataset, int, int, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>split</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.511">split</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  int&nbsp;sections,
+                  int&nbsp;axis,
+                  boolean&nbsp;checkEqual)</pre>
+<div class="block">Split a dataset into equal sections along given axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>sections</code> - </dd><dd><code>axis</code> - </dd><dd><code>checkEqual</code> - makes sure the division is into equal parts</dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of split datasets</dd></dl>
+</li>
+</ul>
+<a name="split(org.eclipse.january.dataset.Dataset, int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>split</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.533">split</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  int[]&nbsp;indices,
+                  int&nbsp;axis)</pre>
+<div class="block">Split a dataset into parts along given axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>indices</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of split datasets</dd></dl>
+</li>
+</ul>
+<a name="repeat(org.eclipse.january.dataset.Dataset,int[],int)">
+<!--   -->
+</a><a name="repeat(T, int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>repeat</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.594">repeat</a>(T&nbsp;a,
+                           int[]&nbsp;repeats,
+                           int&nbsp;axis)</pre>
+<div class="block">Constructs a dataset which has its elements along an axis replicated from
+ the original dataset by the number of times given in the repeats array.
+
+ By default, axis=-1 implies using a flattened version of the input dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>repeats</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="resize(org.eclipse.january.dataset.Dataset,int[])">
+<!--   -->
+</a><a name="resize(T, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.688">resize</a>(T&nbsp;a,
+                           int...&nbsp;shape)</pre>
+<div class="block">Resize a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new dataset with new shape and items that are truncated or repeated, as necessary</dd></dl>
+</li>
+</ul>
+<a name="copy(org.eclipse.january.dataset.IDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.708">copy</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+           int&nbsp;dtype)</pre>
+<div class="block">Copy and cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - The dataset to be copied</dd><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>copied dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="copy(java.lang.Class, org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copy</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.819">copy</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                         <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</pre>
+<div class="block">Copy and cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>d</code> - The dataset to be copied</dd>
+<dt><span class="strong">Returns:</span></dt><dd>copied dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="cast(org.eclipse.january.dataset.IDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.832">cast</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+           int&nbsp;dtype)</pre>
+<div class="block">Cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - The dataset to be cast.</dd><dd><code>dtype</code> - dataset type</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of given type (or same dataset if already of the right type)</dd></dl>
+</li>
+</ul>
+<a name="cast(java.lang.Class, org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.849">cast</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                         <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</pre>
+<div class="block">Cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>d</code> - The dataset to be cast.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of given type (or same dataset if already of the right type)</dd></dl>
+</li>
+</ul>
+<a name="cast(org.eclipse.january.dataset.IDataset, boolean, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.862">cast</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+           boolean&nbsp;repeat,
+           int&nbsp;dtype,
+           int&nbsp;isize)</pre>
+<div class="block">Cast a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - The dataset to be cast.</dd><dd><code>repeat</code> - repeat elements over item</dd><dd><code>dtype</code> - dataset type</dd><dd><code>isize</code> - item size</dd></dl>
+</li>
+</ul>
+<a name="cast(org.eclipse.january.dataset.Dataset[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cast</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.945">cast</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;a,
+                   int&nbsp;dtype)</pre>
+<div class="block">Cast array of datasets to a compound dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - The datasets to be cast.</dd></dl>
+</li>
+</ul>
+<a name="makeUnsigned(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeUnsigned</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.999">makeUnsigned</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</pre>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>unsigned dataset or original if it is not an integer dataset</dd></dl>
+</li>
+</ul>
+<a name="makeUnsigned(org.eclipse.january.dataset.IDataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeUnsigned</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1011">makeUnsigned</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                   boolean&nbsp;check)</pre>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>check</code> - if true, then check for negative values</dd>
+<dt><span class="strong">Returns:</span></dt><dd>unsigned dataset or original if it is not an integer dataset or it has been check for negative numbers</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="unwrapUnsigned(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unwrapUnsigned</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1056">unwrapUnsigned</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  int&nbsp;bitWidth)</pre>
+<div class="block">Unwrap dataset elements so that all elements are unsigned</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>bitWidth</code> - width of original primitive in bits</dd></dl>
+</li>
+</ul>
+<a name="eye(int, int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>eye</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1181">eye</a>(int&nbsp;rows,
+          int&nbsp;cols,
+          int&nbsp;offset,
+          int&nbsp;dtype)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>rows</code> - </dd><dd><code>cols</code> - </dd><dd><code>offset</code> - </dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a new 2d dataset of given shape and type, filled with ones on the (offset) diagonal</dd></dl>
+</li>
+</ul>
+<a name="diag(org.eclipse.january.dataset.Dataset,int)">
+<!--   -->
+</a><a name="diag(T, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>diag</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1207">diag</a>(T&nbsp;a,
+                         int&nbsp;offset)</pre>
+<div class="block">Create a (off-)diagonal matrix from items in dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>offset</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>diagonal matrix</dd></dl>
+</li>
+</ul>
+<a name="sliceAndConvertLazyDataset(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sliceAndConvertLazyDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1264">sliceAndConvertLazyDataset</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazy)
+                                          throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and
+ convert to our dataset implementation. If a slice is necessary, this may cause resource
+ problems when used on large datasets and throw runtime exceptions</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lazy</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Converted dataset or null</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="convertToDataset(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1278">convertToDataset</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</pre>
+<div class="block">Convert (if necessary) a dataset obeying the interface to our implementation</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - can be null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Converted dataset or null</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1351">createCompoundDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</pre>
+<div class="block">Create a compound dataset from given datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>datasets</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset or null if none given</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(int, org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1364">createCompoundDataset</a>(int&nbsp;dtype,
+                                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</pre>
+<div class="block">Create a compound dataset from given datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>datasets</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset or null if none given</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(java.lang.Class, org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1417">createCompoundDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</pre>
+<div class="block">Create a compound dataset from given datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - dataset class</dd><dd><code>datasets</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset or null if none given</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDataset(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1427">createCompoundDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                    int&nbsp;itemSize)</pre>
+<div class="block">Create a compound dataset from given dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd><dd><code>itemSize</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="createCompoundDatasetFromLastAxis(org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createCompoundDatasetFromLastAxis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1476">createCompoundDatasetFromLastAxis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                boolean&nbsp;shareData)</pre>
+<div class="block">Create a compound dataset by using last axis as elements of an item</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - if true, then share data</dd>
+<dt><span class="strong">Returns:</span></dt><dd>compound dataset</dd></dl>
+</li>
+</ul>
+<a name="createDatasetFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDatasetFromCompoundDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1504">createDatasetFromCompoundDataset</a>(<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+                                       boolean&nbsp;shareData)</pre>
+<div class="block">Create a dataset from a compound dataset by using elements of an item as last axis
+ <p>
+ In the case where the number of elements is one, the last axis is squeezed out.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shareData</code> - if true, then share data</dd>
+<dt><span class="strong">Returns:</span></dt><dd>non-compound dataset</dd></dl>
+</li>
+</ul>
+<a name="coerce(org.eclipse.january.dataset.Dataset, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>coerce</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1516">coerce</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a copy that has been coerced to an appropriate dataset type
+ depending on the input object's class</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>coerced copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="norm(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>norm</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1528">norm</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>normalised dataset</dd></dl>
+</li>
+</ul>
+<a name="norm(org.eclipse.january.dataset.CompoundDataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>norm</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1545">norm</a>(<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+                   boolean&nbsp;overAllElements)</pre>
+<div class="block">Function that returns a normalised compound dataset which is bounded between 0 and 1. There
+ are (at least) two ways to normalise a compound dataset: per element - extrema for each element
+ in a compound item is used, i.e. many min/max pairs; over all elements - extrema for all elements
+ is used, i.e. one min/max pair.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>overAllElements</code> - if true, then normalise over all elements in each item</dd>
+<dt><span class="strong">Returns:</span></dt><dd>normalised dataset</dd></dl>
+</li>
+</ul>
+<a name="lognorm(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lognorm</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1576">lognorm</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a log10 scale</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>normalised dataset</dd></dl>
+</li>
+</ul>
+<a name="lnnorm(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lnnorm</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1591">lnnorm</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a natural log scale</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>normalised dataset</dd></dl>
+</li>
+</ul>
+<a name="meshGrid(org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>meshGrid</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1607">meshGrid</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;axes)</pre>
+<div class="block">Construct a list of datasets where each represents a coordinate varying over the hypergrid
+ formed by the input list of axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - an array of 1D datasets representing axes</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a list of coordinate datasets</dd></dl>
+</li>
+</ul>
+<a name="indices(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>indices</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1654">indices</a>(int...&nbsp;shape)</pre>
+<div class="block">Generate an index dataset for given dataset where sub-datasets contain index values</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an index dataset</dd></dl>
+</li>
+</ul>
+<a name="centroid(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>centroid</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1699">centroid</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;bases)</pre>
+<div class="block">Get the centroid value of a dataset, this function works out the centroid in every direction</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - the dataset to be analysed</dd><dd><code>bases</code> - the optional array of base coordinates to use as weights.
+ This defaults to the mid-point of indices</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a double array containing the centroid for each dimension</dd></dl>
+</li>
+</ul>
+<a name="crossings(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>crossings</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1749">crossings</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                     double&nbsp;value)</pre>
+<div class="block">Find linearly-interpolated crossing points where the given dataset crosses the given value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - </dd><dd><code>value</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of interpolated indices</dd></dl>
+</li>
+</ul>
+<a name="crossings(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>crossings</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1790">crossings</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;xAxis,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;yAxis,
+                     double&nbsp;yValue)</pre>
+<div class="block">Find x values of all the crossing points of the dataset with the given y value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>xAxis</code> - Dataset of the X axis that needs to be looked at</dd><dd><code>yAxis</code> - Dataset of the Y axis that needs to be looked at</dd><dd><code>yValue</code> - The y value the X values are required for</dd>
+<dt><span class="strong">Returns:</span></dt><dd>An list of doubles containing all the X coordinates of where the line crosses</dd></dl>
+</li>
+</ul>
+<a name="crossings(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>crossings</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1820">crossings</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;xAxis,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;yAxis,
+                     double&nbsp;yValue,
+                     double&nbsp;xRangeProportion)</pre>
+<div class="block">Function that uses the crossings function but prunes the result, so that multiple crossings within a
+ certain proportion of the overall range of the x values</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>xAxis</code> - Dataset of the X axis</dd><dd><code>yAxis</code> - Dataset of the Y axis</dd><dd><code>yValue</code> - The y value the x values are required for</dd><dd><code>xRangeProportion</code> - The proportion of the overall x spread used to prune result</dd>
+<dt><span class="strong">Returns:</span></dt><dd>A list containing all the unique crossing points</dd></dl>
+</li>
+</ul>
+<a name="createJavaArray(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createJavaArray</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1874">createJavaArray</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Create Java array (of arrays) from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Java array (of arrays...)</dd></dl>
+</li>
+</ul>
+<a name="removeNansAndInfinities(org.eclipse.january.dataset.Dataset, java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeNansAndInfinities</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1919">removeNansAndInfinities</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                           <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;value)</pre>
+<div class="block">Removes NaNs and infinities from floating point datasets.
+ All other dataset types are ignored.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>value</code> - replacement value</dd></dl>
+</li>
+</ul>
+<a name="makeFinite(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>makeFinite</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.1976">makeFinite</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Make floating point datasets contain only finite values. Infinities and NaNs are replaced
+ by +/- MAX_VALUE and 0, respectively.
+ All other dataset types are ignored.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd></dl>
+</li>
+</ul>
+<a name="findIndexEqualTo(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findIndexEqualTo</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2036">findIndexEqualTo</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   double&nbsp;n)</pre>
+<div class="block">Find absolute index of first value in dataset that is equal to given number</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index (if greater than a.getSize() then no value found)</dd></dl>
+</li>
+</ul>
+<a name="findIndexGreaterThan(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findIndexGreaterThan</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2052">findIndexGreaterThan</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                       double&nbsp;n)</pre>
+<div class="block">Find absolute index of first value in dataset that is greater than given number</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index (if greater than a.getSize() then no value found)</dd></dl>
+</li>
+</ul>
+<a name="findIndexGreaterThanOrEqualTo(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findIndexGreaterThanOrEqualTo</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2068">findIndexGreaterThanOrEqualTo</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                double&nbsp;n)</pre>
+<div class="block">Find absolute index of first value in dataset that is greater than or equal to given number</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index (if greater than a.getSize() then no value found)</dd></dl>
+</li>
+</ul>
+<a name="findIndexLessThan(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findIndexLessThan</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2084">findIndexLessThan</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    double&nbsp;n)</pre>
+<div class="block">Find absolute index of first value in dataset that is less than given number</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index (if greater than a.getSize() then no value found)</dd></dl>
+</li>
+</ul>
+<a name="findIndexLessThanOrEqualTo(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findIndexLessThanOrEqualTo</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2100">findIndexLessThanOrEqualTo</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                             double&nbsp;n)</pre>
+<div class="block">Find absolute index of first value in dataset that is less than or equal to given number</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute index (if greater than a.getSize() then no value found)</dd></dl>
+</li>
+</ul>
+<a name="findFirstOccurrences(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findFirstOccurrences</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2116">findFirstOccurrences</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</pre>
+<div class="block">Find first occurrences in one dataset of values given in another sorted dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>values</code> - sorted 1D dataset of values to find</dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute indexes of those first occurrences (-1 is used to indicate value not found)</dd></dl>
+</li>
+</ul>
+<a name="findIndexesForValues(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findIndexesForValues</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2199">findIndexesForValues</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</pre>
+<div class="block">Find indexes in sorted dataset of values for each value in other dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>values</code> - sorted 1D dataset of values to find</dd>
+<dt><span class="strong">Returns:</span></dt><dd>absolute indexes of values (-1 is used to indicate value not found)</dd></dl>
+</li>
+</ul>
+<a name="roll(org.eclipse.january.dataset.Dataset,int,java.lang.Integer)">
+<!--   -->
+</a><a name="roll(T, int, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>roll</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2285">roll</a>(T&nbsp;a,
+                         int&nbsp;shift,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block">Roll items over given axis by given amount</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>shift</code> - </dd><dd><code>axis</code> - if null, then roll flattened dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>rolled dataset</dd></dl>
+</li>
+</ul>
+<a name="rollAxis(org.eclipse.january.dataset.Dataset,int,int)">
+<!--   -->
+</a><a name="rollAxis(T, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rollAxis</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2334">rollAxis</a>(T&nbsp;a,
+                             int&nbsp;axis,
+                             int&nbsp;start)</pre>
+<div class="block">Roll the specified axis backwards until it lies in given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - The rolled axis (index in shape array). Other axes are left unchanged in relative positions</dd><dd><code>start</code> - The position with it right of the destination of the rolled axis</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with rolled axis</dd></dl>
+</li>
+</ul>
+<a name="flipLeftRight(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="flipLeftRight(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flipLeftRight</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2374">flipLeftRight</a>(T&nbsp;a)</pre>
+<div class="block">Flip items in left/right direction, column-wise, or along second axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset must be at least 2D</dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of flipped dataset</dd></dl>
+</li>
+</ul>
+<a name="flipUpDown(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="flipUpDown(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flipUpDown</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2386">flipUpDown</a>(T&nbsp;a)</pre>
+<div class="block">Flip items in up/down direction, row-wise, or along first axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of flipped dataset</dd></dl>
+</li>
+</ul>
+<a name="rotate90(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="rotate90(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rotate90</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2395">rotate90</a>(T&nbsp;a)</pre>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset must be at least 2D</dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of flipped dataset</dd></dl>
+</li>
+</ul>
+<a name="rotate90(org.eclipse.january.dataset.Dataset,int)">
+<!--   -->
+</a><a name="rotate90(T, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rotate90</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2405">rotate90</a>(T&nbsp;a,
+                             int&nbsp;k)</pre>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset must be at least 2D</dd><dd><code>k</code> - number of 90-degree rotations</dd>
+<dt><span class="strong">Returns:</span></dt><dd>view of flipped dataset</dd></dl>
+</li>
+</ul>
+<a name="select(org.eclipse.january.dataset.BooleanDataset, java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>select</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2441">select</a>(<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;condition,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;x,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;y)</pre>
+<div class="block">Select content according where condition is true. All inputs are broadcasted to a maximum shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>condition</code> - boolean dataset</dd><dd><code>x</code> - </dd><dd><code>y</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset where content is x or y depending on whether condition is true or otherwise</dd></dl>
+</li>
+</ul>
+<a name="select(org.eclipse.january.dataset.BooleanDataset[], java.lang.Object[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>select</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2468">select</a>(<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>[]&nbsp;conditions,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;def)</pre>
+<div class="block">Select content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>conditions</code> - array of boolean datasets</dd><dd><code>choices</code> - array of datasets or objects</dd><dd><code>def</code> - default value (can be a dataset)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="choose(org.eclipse.january.dataset.IntegerDataset, java.lang.Object[], boolean, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>choose</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2525">choose</a>(<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+             boolean&nbsp;throwAIOOBE,
+             boolean&nbsp;clip)</pre>
+<div class="block">Choose content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - integer dataset (ideally, items should be in [0, n) range, if there are n choices)</dd><dd><code>choices</code> - array of datasets or objects</dd><dd><code>throwAIOOBE</code> - if true, throw array index out of bound exception</dd><dd><code>clip</code> - true to clip else wrap indices out of bounds; only used when throwAOOBE is false</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="calcPositionsFromIndexes(org.eclipse.january.dataset.Dataset, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcPositionsFromIndexes</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2590">calcPositionsFromIndexes</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+                                            int[]&nbsp;shape)</pre>
+<div class="block">Calculate positions in given shape from a dataset of 1-D indexes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>indices</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of positions as integer datasets</dd></dl>
+</li>
+</ul>
+<a name="calcIndexesFromPositions(java.util.List, int[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcIndexesFromPositions</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2618">calcIndexesFromPositions</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;positions,
+                                      int[]&nbsp;shape,
+                                      int...&nbsp;mode)</pre>
+<div class="block">Calculate indexes in given shape from datasets of position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>positions</code> - as a list of datasets where each holds the position in a dimension</dd><dd><code>shape</code> - </dd><dd><code>mode</code> - either null, zero-length, unit length or length of rank of shape where
+  0 = raise exception, 1 = wrap, 2 = clip</dd>
+<dt><span class="strong">Returns:</span></dt><dd>indexes as an integer dataset</dd></dl>
+</li>
+</ul>
+<a name="serializeDataset(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serializeDataset</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2678">serializeDataset</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</pre>
+<div class="block">Serialize dataset by flattening it. Discards metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>some java array</dd></dl>
+</li>
+</ul>
+<a name="extract(org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>extract</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DatasetUtils.html#line.2691">extract</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+              <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;condition)</pre>
+<div class="block">Extract values where condition is non-zero. This is similar to Dataset#getByBoolean but supports broadcasting</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>condition</code> - should be broadcastable to data</dd>
+<dt><span class="strong">Returns:</span></dt><dd>1-D dataset of values</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DatasetUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DatasetUtils.html" target="_top">Frames</a></li>
+<li><a href="DatasetUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DateDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/DateDataset.html
new file mode 100644
index 0000000..7ffa30a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DateDataset.html
@@ -0,0 +1,347 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DateDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DateDataset.html" target="_top">Frames</a></li>
+<li><a href="DateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface DateDataset" class="title">Interface DateDataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/DateDataset.html#line.17">DateDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></pre>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#serialVersionUID">serialVersionUID</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate()">getDate</a></strong>()</code>
+<div class="block">Get the first date.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int...)">getDate</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the date at given indices</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int)">getDate</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the date at index i.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int,%20int)">getDate</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get the date at index i, j.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDateAbs(int)">getDateAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get the date at the given absolute index.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDataset.html#line.23">getDate</a>()</pre>
+<div class="block">Get the first date. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>date</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getDate(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDataset.html#line.31">getDate</a>(int&nbsp;i)</pre>
+<div class="block">Get the date at index i. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDate(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDataset.html#line.39">getDate</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Get the date at index i, j. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDate(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDataset.html#line.46">getDate</a>(int...&nbsp;pos)</pre>
+<div class="block">Get the date at given indices</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - indices</dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDateAbs(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDateAbs</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDataset.html#line.53">getDateAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get the date at the given absolute index. See warning for <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a> interface.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DateDataset.html" target="_top">Frames</a></li>
+<li><a href="DateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DateDatasetImpl.html b/apidocs/2.1.1/org/eclipse/january/dataset/DateDatasetImpl.html
new file mode 100644
index 0000000..6e84412
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DateDatasetImpl.html
@@ -0,0 +1,670 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateDatasetImpl (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DateDatasetImpl (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateDatasetImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DateDatasetImpl.html" target="_top">Frames</a></li>
+<li><a href="DateDatasetImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DateDatasetImpl" class="title">Class DateDatasetImpl</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.StringDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.StringDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DateDatasetImpl</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.16">DateDatasetImpl</a>
+extends <a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>
+implements <a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.DateDatasetImpl">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate()">getDate</a></strong>()</code>
+<div class="block">Get the first date.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate(int...)">getDate</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the date at given indices</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate(int)">getDate</a></strong>(int&nbsp;i)</code>
+<div class="block">Get the date at index i.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDate(int,%20int)">getDate</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get the date at index i, j.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#getDateAbs(int)">getDateAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get the date at the given absolute index.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setAbs(int,%20java.util.Date)">setAbs</a></strong>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date,%20int...)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value,
+              int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date,%20int)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value,
+              int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItem(java.util.Date,%20int,%20int)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.StringDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/StringDataset.html#clone()">clone</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#getView(boolean)">getView</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#iadd(java.lang.Object)">iadd</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#idivide(java.lang.Object)">idivide</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#imultiply(java.lang.Object)">imultiply</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#ipower(java.lang.Object)">ipower</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#iremainder(java.lang.Object)">iremainder</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#isubtract(java.lang.Object)">isubtract</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html#residual(java.lang.Object)">residual</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get()">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int...)">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int)">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int,%20int)">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setAbs(int,%20java.lang.String)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.104">getDate</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate()">DateDataset</a></code></strong></div>
+<div class="block">Get the first date. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate()">getDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDate(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.110">getDate</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int)">DateDataset</a></code></strong></div>
+<div class="block">Get the date at index i. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int)">getDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDate(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.116">getDate</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int,%20int)">DateDataset</a></code></strong></div>
+<div class="block">Get the date at index i, j. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int,%20int)">getDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDate(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.122">getDate</a>(int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int...)">DateDataset</a></code></strong></div>
+<div class="block">Get the date at given indices</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDate(int...)">getDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - indices</dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="getDateAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDateAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.128">getDateAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDateAbs(int)">DateDataset</a></code></strong></div>
+<div class="block">Get the date at the given absolute index. See warning for <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a> interface.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/DateDataset.html#getDateAbs(int)">getDateAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>date</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.138">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.150">setAbs</a>(int&nbsp;index,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</pre>
+</li>
+</ul>
+<a name="setItem(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.158">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value)</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(java.util.Date, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.162">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value,
+           int&nbsp;i)</pre>
+</li>
+</ul>
+<a name="setItem(java.util.Date, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.166">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+</li>
+</ul>
+<a name="setItem(java.util.Date, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.170">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;value,
+           int...&nbsp;pos)</pre>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.175">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.180">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.185">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.190">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int...)">set</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DateDatasetImpl.html#line.199">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#sort(java.lang.Integer)">sort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateDatasetImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DateDatasetImpl.html" target="_top">Frames</a></li>
+<li><a href="DateDatasetImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/DoubleDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/DoubleDataset.html
new file mode 100644
index 0000000..f2a388b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/DoubleDataset.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:26 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DoubleDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="DoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class DoubleDataset" class="title">Class DoubleDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.DoubleDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.30">DoubleDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.DoubleDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setAbs(int,%20double)">setAbs</a></strong>(int&nbsp;index,
+            double&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem(double)">setItem</a></strong>(double&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem(double,%20int...)">setItem</a></strong>(double&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem(double,%20int)">setItem</a></strong>(double&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItem(double,%20int,%20int)">setItem</a></strong>(double&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;double[] <a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.34">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.37">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.41">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.56">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.180">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.185">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.251">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.266">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.271">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.278">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.293">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.298">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.303">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.308">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.313">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.318">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.332">setAbs</a>(int&nbsp;index,
+          double&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.338">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.345">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.357">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.365">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.374">get</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.382">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.387">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.392">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.397">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.402">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.407">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.412">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.417">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.422">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.427">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.432">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.437">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.442">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.447">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.452">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.457">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.462">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.467">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.472">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.477">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.482">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.487">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.492">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.497">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.502">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.507">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.512">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.517">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.522">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.527">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.532">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.537">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.542">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.547">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.552">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.557">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.562">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.572">setItem</a>(double&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.582">setItem</a>(double&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(double, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.593">setItem</a>(double&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(double, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.603">setItem</a>(double&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.608">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.613">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.618">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.623">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.632">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.656">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.683">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.700">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.712">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.724">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.752">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                         <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.779">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                         <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.818">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                     <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.858">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.877">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.915">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.933">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.951">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.961">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.971">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.982">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1017">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1053">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1088">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1140">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1150">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1194">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/DoubleDataset.html#line.1262">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DoubleDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/DoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="DoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/FloatDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/FloatDataset.html
new file mode 100644
index 0000000..e698621
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/FloatDataset.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="FloatDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FloatDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/FloatDataset.html" target="_top">Frames</a></li>
+<li><a href="FloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class FloatDataset" class="title">Class FloatDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.FloatDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.30">FloatDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.FloatDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setAbs(int,%20float)">setAbs</a></strong>(int&nbsp;index,
+            float&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem(float)">setItem</a></strong>(float&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem(float,%20int...)">setItem</a></strong>(float&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem(float,%20int)">setItem</a></strong>(float&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItem(float,%20int,%20int)">setItem</a></strong>(float&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/FloatDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;float[] <a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.34">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.37">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.41">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.56">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.180">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.185">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.251">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;float[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.266">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.271">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.278">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.293">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.298">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.303">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.308">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.313">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.318">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.332">setAbs</a>(int&nbsp;index,
+          float&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.338">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.345">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.357">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.365">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.374">get</a>(int&nbsp;i,
+        int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.382">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.387">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.392">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.397">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.402">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.407">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.412">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.417">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.422">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.427">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.432">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.437">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.442">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.447">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.452">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.457">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.462">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.467">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.472">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.477">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.482">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.487">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.492">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.497">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.502">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.507">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.512">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.517">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.522">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.527">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.532">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.537">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.542">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.547">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.552">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.557">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.562">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.572">setItem</a>(float&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(float, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.582">setItem</a>(float&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(float, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.593">setItem</a>(float&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(float, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.603">setItem</a>(float&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.608">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.613">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.618">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.623">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.632">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.656">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.683">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.700">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.712">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.724">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.752">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.779">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.818">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                    <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.858">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.877">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.915">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.933">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.951">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.961">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.971">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.982">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1017">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1053">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1088">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1140">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1150">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1194">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/FloatDataset.html#line.1262">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FloatDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/FloatDataset.html" target="_top">Frames</a></li>
+<li><a href="FloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IDataListener.html b/apidocs/2.1.1/org/eclipse/january/dataset/IDataListener.html
new file mode 100644
index 0000000..f5ff461
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IDataListener.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataListener (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDataListener (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDataListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDataListener.html" target="_top">Frames</a></li>
+<li><a href="IDataListener.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IDataListener" class="title">Interface IDataListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IDataListener.html#line.17">IDataListener</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a></pre>
+<div class="block">Listener for data changes. Don't forget to remove it when you no longer need data
+ changes to be updated.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataListener.html#dataChangePerformed(org.eclipse.january.dataset.DataEvent)">dataChangePerformed</a></strong>(<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</code>
+<div class="block">Called when data changes value/shape.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="dataChangePerformed(org.eclipse.january.dataset.DataEvent)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>dataChangePerformed</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataListener.html#line.23">dataChangePerformed</a>(<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</pre>
+<div class="block">Called when data changes value/shape.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>evt</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDataListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDataListener.html" target="_top">Frames</a></li>
+<li><a href="IDataListener.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/IDataset.html
new file mode 100644
index 0000000..36927d4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IDataset.html
@@ -0,0 +1,839 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDataset.html" target="_top">Frames</a></li>
+<li><a href="IDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IDataset" class="title">Interface IDataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a>, <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>, <a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.25">IDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></pre>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.
+ <p>
+ The position array used in the getters</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getError(int...)">getError</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the error for a given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrorArray(int...)">getErrorArray</a></strong>(int...&nbsp;pos)</code>
+<div class="block">Get the error values for a single point in the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#mean(boolean...)">mean</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a>&nbsp;format)</code>
+<div class="block">Set string output format</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze</a></strong>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnds)</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setStringFormat(java.text.Format)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStringFormat</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.30">setStringFormat</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a>&nbsp;format)</pre>
+<div class="block">Set string output format</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>format</code> - </dd></dl>
+</li>
+</ul>
+<a name="getItemBytes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getItemBytes</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.35">getItemBytes</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Size of an item in dataset in bytes</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.41">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.47">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.53">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.59">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.65">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.71">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.77">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.83">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.89">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.96">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block">Set the value given by object at given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.102">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block">Change shape and size of dataset in-place</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newShape</code> - </dd></dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.105">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeeze()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.110">squeeze</a>()</pre>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</li>
+</ul>
+<a name="squeeze(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeeze</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.117">squeeze</a>(boolean&nbsp;onlyFromEnds)</pre>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>onlyFromEnds</code> - </dd></dl>
+</li>
+</ul>
+<a name="max(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.126">max</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Maximum value</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if comparisons are not valid</dd></dl>
+</li>
+</ul>
+<a name="mean(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.132">mean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean of all items in dataset as a double, array of doubles or a complex number</dd></dl>
+</li>
+</ul>
+<a name="min(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.139">min</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Minimum value</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if comparisons are not valid</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.146">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.153">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.160">clone</a>()</pre>
+<div class="block">Clone dataset, making new copy of data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (deep) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="getMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.168">getMetadata</a>()</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>an instance of IMetadata, may be null</dd></dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.171">getSlice</a>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.174">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.177">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.192">getSliceView</a>(int[]&nbsp;start,
+                    int[]&nbsp;stop,
+                    int[]&nbsp;step)</pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.201">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.210">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an nD slice object</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.229">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.237">getErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">ILazyDataset</a></code></strong></div>
+<div class="block">Get the errors, if any. These will be in a shape that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the error dataset, constructing one if necessary</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getError(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.244">getError</a>(int...&nbsp;pos)</pre>
+<div class="block">Get the error for a given position.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>error value (symmetric)</dd></dl>
+</li>
+</ul>
+<a name="getErrorArray(int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getErrorArray</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDataset.html#line.251">getErrorArray</a>(int...&nbsp;pos)</pre>
+<div class="block">Get the error values for a single point in the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - of the point to be referenced</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the values of the error at this point (can be null when no error defined)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDataset.html" target="_top">Frames</a></li>
+<li><a href="IDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IDatasetChangeChecker.html b/apidocs/2.1.1/org/eclipse/january/dataset/IDatasetChangeChecker.html
new file mode 100644
index 0000000..37955aa
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IDatasetChangeChecker.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDatasetChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDatasetChangeChecker (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDatasetChangeChecker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDatasetChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="IDatasetChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IDatasetChangeChecker" class="title">Interface IDatasetChangeChecker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html#line.15">IDatasetChangeChecker</a></pre>
+<div class="block">Interface for a dataset checker to detect change</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#check()">check</a></strong>()</code>
+<div class="block">Check for any change.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;dataset)</code>
+<div class="block">Set dataset to be checked for signs of change.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setDataset(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDataset</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html#line.21">setDataset</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;dataset)</pre>
+<div class="block">Set dataset to be checked for signs of change. Do any state initialization in here.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="check()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>check</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html#line.27">check</a>()</pre>
+<div class="block">Check for any change. Also update state information.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if possible change may have occurred</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDatasetChangeChecker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDatasetChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="IDatasetChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IDatasetConnector.html b/apidocs/2.1.1/org/eclipse/january/dataset/IDatasetConnector.html
new file mode 100644
index 0000000..69728ae
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IDatasetConnector.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDatasetConnector (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDatasetConnector (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDatasetConnector.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDatasetConnector.html" target="_top">Frames</a></li>
+<li><a href="IDatasetConnector.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IDatasetConnector" class="title">Interface IDatasetConnector</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, <a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.23">IDatasetConnector</a>
+extends <a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></pre>
+<div class="block">A dataset connector contains a lazy dataset which exists in a remote
+ location. It uses a connection to the DataServer to provide the
+ implementation of the slicing required remotely.
+ 
+ You may also listen to data changing in the dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IDynamicShape">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#UNLIMITED">UNLIMITED</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect()">connect</a></strong>()</code>
+<div class="block">Same as calling connect(500, TimeUnit.MILLISECOND)
+ 
+ Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#connect(long,%20java.util.concurrent.TimeUnit)">connect</a></strong>(long&nbsp;time,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
+<div class="block">Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#disconnect()">disconnect</a></strong>()</code>
+<div class="block">Stops listening to the dataset changing and disconnects from the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#getDatasetName()">getDatasetName</a></strong>()</code>
+<div class="block">The dataset location/name in the file</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#isWritingExpected()">isWritingExpected</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#setDatasetName(java.lang.String)">setDatasetName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetName)</code>
+<div class="block">The dataset location/name in the file</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html#setWritingExpected(boolean)">setWritingExpected</a></strong>(boolean&nbsp;expectWrite)</code>
+<div class="block">If set to true the DataServer will not cache the dataset.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IFileConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IFileConnection.html#getPath()">getPath</a>, <a href="../../../../org/eclipse/january/dataset/IFileConnection.html#setPath(java.lang.String)">setPath</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDynamicShape">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDatasetName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDatasetName</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.29">getDatasetName</a>()</pre>
+<div class="block">The dataset location/name in the file</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Dataset name</dd></dl>
+</li>
+</ul>
+<a name="setDatasetName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDatasetName</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.35">setDatasetName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetName)</pre>
+<div class="block">The dataset location/name in the file</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>datasetName</code> - </dd></dl>
+</li>
+</ul>
+<a name="setWritingExpected(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWritingExpected</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.52">setWritingExpected</a>(boolean&nbsp;expectWrite)</pre>
+<div class="block">If set to true the DataServer will not cache the dataset. 
+ If left as false: if the data server can figure out that the 
+ file is writing, it will reshape. However it cannot always 
+ determine this depending on the file and what is writing to 
+ it (SWMR can write without changing date stamp for instance)
+ 
+ Setting this boolean ensures that a given path, never will
+ cache on the data server.
+ 
+ Default value is false for MJPG streams and true for standard
+ remote datasets.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>expectWrite</code> - </dd></dl>
+</li>
+</ul>
+<a name="isWritingExpected()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWritingExpected</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.57">isWritingExpected</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if the remote dataset has been warned that writing is expected.</dd></dl>
+</li>
+</ul>
+<a name="connect()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.74">connect</a>()
+               throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Same as calling connect(500, TimeUnit.MILLISECOND)
+ 
+ Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.
+ When connect it called, the remote file must exist and the dataset properties
+ are read. These properties must not change in the file while you are connected.
+ For instance if the file is ints when you connect, it must not change data class.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the name of the thread started to run the connection or null if each event
+ is driven from the event thread of the service (for instance web sockets provide the
+ thread and this runs the connection)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="connect(long, java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.89">connect</a>(long&nbsp;time,
+             <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)
+               throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Cannot will connect with the DataServer to start listening
+ to any updates to the file should it be written in the remote file system.
+ When connect it called, the remote file must exist and the dataset properties
+ are read. These properties must not change in the file while you are connected.
+ For instance if the file is ints when you connect, it must not change data class.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>time</code> - </dd><dd><code>unit</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the name of the thread started to run the connection or null if each event
+ is driven from the event thread of the service (for instance web sockets provide the
+ thread and this runs the connection)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="disconnect()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>disconnect</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDatasetConnector.html#line.95">disconnect</a>()
+                throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Stops listening to the dataset changing and disconnects from the server.
+ A remote dataset may be connected and disconnected multiple times.</div>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDatasetConnector.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDatasetConnector.html" target="_top">Frames</a></li>
+<li><a href="IDatasetConnector.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IDynamicDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/IDynamicDataset.html
new file mode 100644
index 0000000..544cc5d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IDynamicDataset.html
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDynamicDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDynamicDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="IDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IDynamicDataset" class="title">Interface IDynamicDataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IDynamicDataset.html#line.20">IDynamicDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></pre>
+<div class="block">This interface is intended for data sources that change dynamically.
+ Examples:
+ 1. An image stream from a camera encoded which entire image, changes periodically.
+ 2. An HDF5 dataset which entire shape changes as data is added.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED">UNLIMITED</a></strong></code>
+<div class="block">Denotes an unlimited dimension in maximum shape</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDynamicShape">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="UNLIMITED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UNLIMITED</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/IDynamicDataset.html#line.25">UNLIMITED</a></pre>
+<div class="block">Denotes an unlimited dimension in maximum shape</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.IDynamicDataset.UNLIMITED">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDynamicDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="IDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IDynamicShape.html b/apidocs/2.1.1/org/eclipse/january/dataset/IDynamicShape.html
new file mode 100644
index 0000000..ec2e21b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IDynamicShape.html
@@ -0,0 +1,405 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDynamicShape (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDynamicShape (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDynamicShape.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDynamicShape.html" target="_top">Frames</a></li>
+<li><a href="IDynamicShape.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IDynamicShape" class="title">Interface IDynamicShape</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.19">IDynamicShape</a></pre>
+<div class="block">This interface is intended for data sources that change shape dynamically.
+ Examples:
+ 1. An image stream from a camera encoded which entire image, changes periodically.
+ 2. An HDF5 dataset which entire shape changes as data is added.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#UNLIMITED">UNLIMITED</a></strong></code>
+<div class="block">Denotes an unlimited dimension in maximum shape</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>
+<div class="block">Add a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners</a></strong>()</code>
+<div class="block">Alert any registered listeners</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape</a></strong>()</code>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>
+<div class="block">Remove a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape</a></strong>(int...&nbsp;maxShape)</code>
+<div class="block">Set maximum shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></strong>(int&nbsp;milliseconds,
+                                    <a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>&nbsp;checker)</code>
+<div class="block">Starts a periodic checker to see if dataset has changed in some manner.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="UNLIMITED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UNLIMITED</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.24">UNLIMITED</a></pre>
+<div class="block">Denotes an unlimited dimension in maximum shape</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.IDynamicShape.UNLIMITED">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDataset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataset</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.30">getDataset</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dataset associated with shape</dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.39">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block">Change shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newShape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if shape has changed</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if new shape exceeds maximum shape or is of different rank</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if used on a view</dd></dl>
+</li>
+</ul>
+<a name="getMaxShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxShape</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.44">getMaxShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>maximum shape (can be null)</dd></dl>
+</li>
+</ul>
+<a name="setMaxShape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxShape</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.50">setMaxShape</a>(int...&nbsp;maxShape)</pre>
+<div class="block">Set maximum shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxShape</code> - maximum shape</dd></dl>
+</li>
+</ul>
+<a name="startUpdateChecker(int, org.eclipse.january.dataset.IDatasetChangeChecker)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startUpdateChecker</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.60">startUpdateChecker</a>(int&nbsp;milliseconds,
+                      <a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>&nbsp;checker)</pre>
+<div class="block">Starts a periodic checker to see if dataset has changed in some manner. If any potential changes
+ are detected after the period has finished then registered listeners are alerted.
+ A period of 0 or less will stop any existing checker.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>milliseconds</code> - period between checks in milliseconds</dd><dd><code>checker</code> - can be null for default implementation of alerting listeners unconditionally</dd></dl>
+</li>
+</ul>
+<a name="refreshShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>refreshShape</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.66">refreshShape</a>()</pre>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if shape has changed</dd></dl>
+</li>
+</ul>
+<a name="addDataListener(org.eclipse.january.dataset.IDataListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDataListener</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.73">addDataListener</a>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</pre>
+<div class="block">Add a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>l</code> - </dd></dl>
+</li>
+</ul>
+<a name="removeDataListener(org.eclipse.january.dataset.IDataListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeDataListener</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.80">removeDataListener</a>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</pre>
+<div class="block">Remove a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>l</code> - </dd></dl>
+</li>
+</ul>
+<a name="fireDataListeners()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fireDataListeners</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IDynamicShape.html#line.85">fireDataListeners</a>()</pre>
+<div class="block">Alert any registered listeners</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDynamicShape.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IDynamicShape.html" target="_top">Frames</a></li>
+<li><a href="IDynamicShape.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IFileConnection.html b/apidocs/2.1.1/org/eclipse/january/dataset/IFileConnection.html
new file mode 100644
index 0000000..b7b4e4b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IFileConnection.html
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IFileConnection (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IFileConnection (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IFileConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IFileConnection.html" target="_top">Frames</a></li>
+<li><a href="IFileConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IFileConnection" class="title">Interface IFileConnection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a>, <a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">IRemoteData</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IFileConnection.html#line.12">IFileConnection</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IFileConnection.html#getPath()">getPath</a></strong>()</code>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IFileConnection.html#setPath(java.lang.String)">setPath</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IFileConnection.html#line.18">getPath</a>()</pre>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the file path to the data in the file system of the remote machine</dd></dl>
+</li>
+</ul>
+<a name="setPath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setPath</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IFileConnection.html#line.28">setPath</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
+<div class="block">DataServer path, a local path on the server used to locate the remote dataset.
+ This path may also be a directory where the data collection will happen. In this
+ case when the first file is written, the dataset must be made up of files with the
+ same extension.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>path</code> - to the data in the file system of the remote machine</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IFileConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IFileConnection.html" target="_top">Frames</a></li>
+<li><a href="IFileConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ILazyDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ILazyDataset.html
new file mode 100644
index 0000000..fd84e24
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ILazyDataset.html
@@ -0,0 +1,693 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ILazyDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ILazyDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface ILazyDataset" class="title">Interface ILazyDataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>, <a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a>, <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>, <a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>, <a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.27">ILazyDataset</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></pre>
+<div class="block">This interface defines the lazy parts of a dataset. A dataset is a N-dimensional array of items
+ where N can be zero to represent a zero-rank or single-valued dataset. A zero-rank dataset has
+ an empty array for shape. An item comprises a number of elements.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a></strong>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>
+<div class="block">Add metadata to the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>
+<div class="block">Remove metadata of given class</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a></strong>()</code>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a></strong>()</code>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a></strong>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a></strong>()</code>
+<div class="block">If error information is set, returns true.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</code>
+<div class="block">Set the errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></strong>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>
+<div class="block">Set metadata on the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getElementClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.32">getElementClass</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Boxed class of element</dd></dl>
+</li>
+</ul>
+<a name="getElementsPerItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.37">getElementsPerItem</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Number of elements per item</dd></dl>
+</li>
+</ul>
+<a name="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.44">getSize</a>()</pre>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>number of data items</dd></dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.52">getShape</a>()</pre>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Copy of shape of dataset</dd></dl>
+</li>
+</ul>
+<a name="setShape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setShape</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.60">setShape</a>(int...&nbsp;shape)</pre>
+<div class="block">Set a compatible shape for dataset. A shape is compatible if it has the capacity to contain
+ the same number of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd></dl>
+</li>
+</ul>
+<a name="getRank()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRank</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.67">getRank</a>()</pre>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>rank</dd></dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.72">squeezeEnds</a>()</pre>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.86">getSlice</a>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.101">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - </dd><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.111">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.121">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - </dd><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.130">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.140">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - </dd><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.153">getSliceView</a>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</pre>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.161">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.169">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.187">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="addMetadata(org.eclipse.january.metadata.MetadataType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMetadata</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.194">addMetadata</a>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</pre>
+<div class="block">Add metadata to the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - </dd></dl>
+</li>
+</ul>
+<a name="setMetadata(org.eclipse.january.metadata.MetadataType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMetadata</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.201">setMetadata</a>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</pre>
+<div class="block">Set metadata on the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - (null is ignored so use clear(null) instead)</dd></dl>
+</li>
+</ul>
+<a name="clearMetadata(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearMetadata</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.207">clearMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</pre>
+<div class="block">Remove metadata of given class</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - if null remove everything</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.213">clone</a>()</pre>
+<div class="block">Clone dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="setErrors(java.io.Serializable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setErrors</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.223">setErrors</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</pre>
+<div class="block">Set the errors. It may be a single double, a double array or a
+ whole dataset that can broadcast to the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>errors</code> - - may be null to remove the error set</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang">RuntimeException</a></code> - if the rank or shape are incorrect</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.229">getErrors</a>()</pre>
+<div class="block">Get the errors, if any. These will be in a shape that can broadcast to the dataset</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="hasErrors()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hasErrors</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyDataset.html#line.238">hasErrors</a>()</pre>
+<div class="block">If error information is set, returns true.
+ Faster to call than getError() which constructs a
+ new dataset.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if there is error data.</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ILazyDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ILazyWriteableDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ILazyWriteableDataset.html
new file mode 100644
index 0000000..a6cd899
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ILazyWriteableDataset.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ILazyWriteableDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyWriteableDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ILazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface ILazyWriteableDataset" class="title">Interface ILazyWriteableDataset</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.19">ILazyWriteableDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></pre>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#UNLIMITED">UNLIMITED</a></strong></code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED"><code>IDynamicDataset.UNLIMITED</code></a></div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getChunking()">getChunking</a></strong>()</code>
+<div class="block">Get chunking</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getFillValue()">getFillValue</a></strong>()</code>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setChunking(int...)">setChunking</a></strong>(int...&nbsp;chunks)</code>
+<div class="block">Set chunking</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setFillValue(java.lang.Object)">setFillValue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;fill)</code>
+<div class="block">Set the value used to fill an un-initialized dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver</a></strong>(<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Set saver</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset synchronously</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setWritingAsync(boolean)">setWritingAsync</a></strong>(boolean&nbsp;async)</code>
+<div class="block">Set writing slices as asynchronous</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDynamicShape">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="UNLIMITED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UNLIMITED</h4>
+<pre>static final&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.24">UNLIMITED</a></pre>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED"><code>IDynamicDataset.UNLIMITED</code></a></div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.dataset.ILazyWriteableDataset.UNLIMITED">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getChunking()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChunking</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.30">getChunking</a>()</pre>
+<div class="block">Get chunking</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>chunks (can be null)</dd></dl>
+</li>
+</ul>
+<a name="setChunking(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setChunking</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.36">setChunking</a>(int...&nbsp;chunks)</pre>
+<div class="block">Set chunking</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>chunks</code> - chunk shape</dd></dl>
+</li>
+</ul>
+<a name="setSaver(org.eclipse.january.io.ILazySaver)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSaver</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.42">setSaver</a>(<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</pre>
+<div class="block">Set saver</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>saver</code> - </dd></dl>
+</li>
+</ul>
+<a name="setSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.52">setSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+            <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+              throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Set a slice of the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - </dd><dd><code>data</code> - </dd><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.67">setSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+            int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)
+              throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Set a slice of the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - </dd><dd><code>data</code> - </dd><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setSliceSync(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSliceSync</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.77">setSliceSync</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Set a slice of the dataset synchronously</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>monitor</code> - </dd><dd><code>data</code> - </dd><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setWritingAsync(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWritingAsync</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.83">setWritingAsync</a>(boolean&nbsp;async)</pre>
+<div class="block">Set writing slices as asynchronous</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>async</code> - </dd></dl>
+</li>
+</ul>
+<a name="getFillValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFillValue</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.89">getFillValue</a>()</pre>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>fill value</dd></dl>
+</li>
+</ul>
+<a name="setFillValue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setFillValue</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html#line.95">setFillValue</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;fill)</pre>
+<div class="block">Set the value used to fill an un-initialized dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>fill</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyWriteableDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ILazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IMetadataProvider.html b/apidocs/2.1.1/org/eclipse/january/dataset/IMetadataProvider.html
new file mode 100644
index 0000000..214bf53
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IMetadataProvider.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetadataProvider (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMetadataProvider (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMetadataProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IMetadataProvider.html" target="_top">Frames</a></li>
+<li><a href="IMetadataProvider.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IMetadataProvider" class="title">Interface IMetadataProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>, <a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>, <a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a>, <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>, <a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a>, <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>, <a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>, <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>, <a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IMetadataProvider.html#line.24">IMetadataProvider</a></pre>
+<div class="block">Interface which acts to provide metadata from an object</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br>S</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IMetadataProvider.html#line.32">getMetadata</a>()
+                      throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an instance of IMetadata</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
+</li>
+</ul>
+<a name="getMetadata(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IMetadataProvider.html#line.39">getMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)
+                                         throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - if null return everything</dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of metadata with given class (or its super interface)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getFirstMetadata(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFirstMetadata</h4>
+<pre>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;S&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IMetadataProvider.html#line.45">getFirstMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - if null return first from everything</dd>
+<dt><span class="strong">Returns:</span></dt><dd>first element from list of metadata with given class (or its super interface)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMetadataProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IMetadataProvider.html" target="_top">Frames</a></li>
+<li><a href="IMetadataProvider.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IOperation.html b/apidocs/2.1.1/org/eclipse/january/dataset/IOperation.html
new file mode 100644
index 0000000..bb92274
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IOperation.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IOperation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IOperation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IOperation.html" target="_top">Frames</a></li>
+<li><a href="IOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IOperation" class="title">Interface IOperation</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a>, <a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a>, <a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IOperation.html#line.19">IOperation</a></pre>
+<div class="block">Marker interface for all operations</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IOperation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IOperation.html" target="_top">Frames</a></li>
+<li><a href="IOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IRemoteData.html b/apidocs/2.1.1/org/eclipse/january/dataset/IRemoteData.html
new file mode 100644
index 0000000..2d496fe
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IRemoteData.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IRemoteData (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IRemoteData (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IRemoteData.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IRemoteData.html" target="_top">Frames</a></li>
+<li><a href="IRemoteData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface IRemoteData" class="title">Interface IRemoteData</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/IRemoteData.html#line.24">IRemoteData</a>
+extends <a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></pre>
+<div class="block">This class provides access to remote data which
+ may consist of more than one remote dataset. It
+ provides meta information about the contents of
+ the remote data which can be used to determine
+ which remote dataset to open. It provides a convenience
+ method for creating a remote dataset which must
+ be connected when it is returned but must be disconnected
+ or its parent IRemoteData disconnected at some point
+ later to close the connection with the server.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IRemoteData.html#createRemoteDataset(java.lang.String)">createRemoteDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetPath)</code>
+<div class="block">Create a remote dataset looking at the dataset path named.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IRemoteData.html#getTree()">getTree</a></strong>()</code>
+<div class="block">Map of path to collection of attributes at that path.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IFileConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IFileConnection.html#getPath()">getPath</a>, <a href="../../../../org/eclipse/january/dataset/IFileConnection.html#setPath(java.lang.String)">setPath</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTree()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTree</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IRemoteData.html#line.31">getTree</a>()
+                           throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Map of path to collection of attributes at that path.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>NeXus meta-data objects in most instances.</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
+</li>
+</ul>
+<a name="createRemoteDataset(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createRemoteDataset</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IRemoteData.html#line.41">createRemoteDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetPath)
+                                      throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Create a remote dataset looking at the dataset path named.
+ connect() before use and disconnect() after use must be performed.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>datasetPath</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>IRemoteDataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IRemoteData.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IRemoteData.html" target="_top">Frames</a></li>
+<li><a href="IRemoteData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IndexIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/IndexIterator.html
new file mode 100644
index 0000000..117bf1a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IndexIterator.html
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IndexIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IndexIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IndexIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IndexIterator.html" target="_top">Frames</a></li>
+<li><a href="IndexIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class IndexIterator" class="title">Class IndexIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.IndexIterator</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a>, <a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a>, <a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a>, <a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a>, <a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a>, <a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a>, <a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.29">IndexIterator</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block"><p>Class to provide iteration through whole data array that backs a dataset</p>
+ <p>Instantiate an iterator and use it in a while loop:
+ <pre>
+  DoubleDataset ds = DatasetFactory.createLinearSpace(DoubleDataset.class, 0, 10, 0.25);
+  IndexIterator iter = ds.getIterator();
+  double[] data = ds.getData();
+  
+  while (iter.hasNext()) {
+      data[iter.index] = 1.2;
+  }
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></strong></code>
+<div class="block">Index in array</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#IndexIterator()">IndexIterator</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="index">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>index</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.33">index</a></pre>
+<div class="block">Index in array</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IndexIterator()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IndexIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.29">IndexIterator</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.38">hasNext</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public abstract&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.43">getPos</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.48">reset</a>()</pre>
+<div class="block">Reset iterator</div>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IndexIterator.html#line.53">getShape</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IndexIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IndexIterator.html" target="_top">Frames</a></li>
+<li><a href="IndexIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IntegerDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/IntegerDataset.html
new file mode 100644
index 0000000..5ab0a38
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IntegerDataset.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IntegerDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="IntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class IntegerDataset" class="title">Class IntegerDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.IntegerDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.30">IntegerDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.IntegerDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setAbs(int,%20int)">setAbs</a></strong>(int&nbsp;index,
+            int&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem(int)">setItem</a></strong>(int&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem(int,%20int...)">setItem</a></strong>(int&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem(int,%20int)">setItem</a></strong>(int&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItem(int,%20int,%20int)">setItem</a></strong>(int&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.34">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.37">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.41">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.56">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.180">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.185">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.251">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.266">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.271">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.278">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.293">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.298">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.303">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.308">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.313">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.318">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.332">setAbs</a>(int&nbsp;index,
+          int&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.338">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.345">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.357">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.365">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.374">get</a>(int&nbsp;i,
+      int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.382">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.387">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.392">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.397">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.402">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.407">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.412">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.417">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.422">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.427">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.432">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.437">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.442">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.447">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.452">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.457">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.462">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.467">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.472">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.477">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.482">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.487">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.492">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.497">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.502">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.507">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.512">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.517">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.522">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.527">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.532">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.537">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.542">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.547">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.552">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.557">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.562">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.572">setItem</a>(int&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.582">setItem</a>(int&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.593">setItem</a>(int&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(int, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.603">setItem</a>(int&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.608">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.613">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.618">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.623">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.632">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.656">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.683">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.700">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.712">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.724">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.752">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.779">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.818">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.858">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.877">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.908">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.926">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.944">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.949">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.954">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.959">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.994">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.1030">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.1065">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.1117">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.1122">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.1170">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerDataset.html#line.1238">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="IntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IntegerIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/IntegerIterator.html
new file mode 100644
index 0000000..51447e5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IntegerIterator.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IntegerIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IntegerIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegerIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class IntegerIterator" class="title">Class IntegerIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.IntegerIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.18">IntegerIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Class to run over an integer dataset and return its items</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator(org.eclipse.january.dataset.Dataset,%20int)">IntegerIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index,
+                              int&nbsp;length)</code>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator(org.eclipse.january.dataset.Dataset,%20int,%20int)">IntegerIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index,
+                              int&nbsp;length,
+                              int&nbsp;isize)</code>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IntegerIterator(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IntegerIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.30">IntegerIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index,
+               int&nbsp;length)</pre>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - integer dataset</dd><dd><code>length</code> - of entire data array</dd></dl>
+</li>
+</ul>
+<a name="IntegerIterator(org.eclipse.january.dataset.Dataset, int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IntegerIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.41">IntegerIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index,
+               int&nbsp;length,
+               int&nbsp;isize)</pre>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - integer dataset</dd><dd><code>length</code> - of entire data array</dd><dd><code>isize</code> - number of elements in an item</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.49">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.61">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegerIterator.html#line.66">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IntegerIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegerIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/IntegersIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/IntegersIterator.html
new file mode 100644
index 0000000..b4b9883
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/IntegersIterator.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegersIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IntegersIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegersIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IntegersIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegersIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class IntegersIterator" class="title">Class IntegersIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.IntegersIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.22">IntegersIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Class to run over an array of integer datasets and return its items</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator(boolean,%20int[],%20java.lang.Object...)">IntegersIterator</a></strong>(boolean&nbsp;restrict1D,
+                                int[]&nbsp;shape,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;index)</code>
+<div class="block">Constructor for an iterator over the items of an array of objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#IntegersIterator(int[],%20java.lang.Object...)">IntegersIterator</a></strong>(int[]&nbsp;shape,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;index)</code>
+<div class="block">Constructor for an iterator over the items of an array of objects</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IntegersIterator(int[], java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IntegersIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.47">IntegersIterator</a>(int[]&nbsp;shape,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;index)</pre>
+<div class="block">Constructor for an iterator over the items of an array of objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - of entire data array</dd><dd><code>index</code> - an array of integer dataset, boolean dataset, slices or null entries (same as full slices)</dd></dl>
+</li>
+</ul>
+<a name="IntegersIterator(boolean, int[], java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IntegersIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.57">IntegersIterator</a>(boolean&nbsp;restrict1D,
+                int[]&nbsp;shape,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;index)</pre>
+<div class="block">Constructor for an iterator over the items of an array of objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>restrict1D</code> - if true, allow only one 1D integer datasets otherwise they must match shape</dd><dd><code>shape</code> - of entire data array</dd><dd><code>index</code> - an array of integer dataset, boolean dataset, slices or null entries (same as full slices)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.193">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.198">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.258">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/IntegersIterator.html#line.263">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegersIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/IntegersIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegersIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/InterpolatorUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/InterpolatorUtils.html
new file mode 100644
index 0000000..e0f7fb7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/InterpolatorUtils.html
@@ -0,0 +1,368 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InterpolatorUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="InterpolatorUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterpolatorUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/InterpolatorUtils.html" target="_top">Frames</a></li>
+<li><a href="InterpolatorUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class InterpolatorUtils" class="title">Class InterpolatorUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.InterpolatorUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.56">InterpolatorUtils</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#InterpolatorUtils()">InterpolatorUtils</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#regrid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regrid</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#regridOld(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regridOld</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remap1D(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remap1D</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;axis,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapAxis</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                  int&nbsp;axisIndex,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapOneAxis</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                        int&nbsp;axisIndex,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;corrections,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int,%20int)">selectDatasetRegion</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                      int&nbsp;x,
+                                      int&nbsp;y,
+                                      int&nbsp;xSize,
+                                      int&nbsp;ySize)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InterpolatorUtils()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InterpolatorUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.56">InterpolatorUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="regridOld(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>regridOld</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.58">regridOld</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)
+                         throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd></dl>
+</li>
+</ul>
+<a name="selectDatasetRegion(org.eclipse.january.dataset.Dataset, int, int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>selectDatasetRegion</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.90">selectDatasetRegion</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                          int&nbsp;x,
+                          int&nbsp;y,
+                          int&nbsp;xSize,
+                          int&nbsp;ySize)</pre>
+</li>
+</ul>
+<a name="remap1D(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remap1D</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.364">remap1D</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;axis,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</pre>
+</li>
+</ul>
+<a name="remapOneAxis(org.eclipse.january.dataset.Dataset, int, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remapOneAxis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.402">remapOneAxis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                   int&nbsp;axisIndex,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;corrections,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</pre>
+</li>
+</ul>
+<a name="remapAxis(org.eclipse.january.dataset.Dataset, int, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remapAxis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.452">remapAxis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                int&nbsp;axisIndex,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</pre>
+</li>
+</ul>
+<a name="regrid(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>regrid</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/InterpolatorUtils.html#line.498">regrid</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterpolatorUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/InterpolatorUtils.html" target="_top">Frames</a></li>
+<li><a href="InterpolatorUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LazyDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/LazyDataset.html
new file mode 100644
index 0000000..9dd7248
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LazyDataset.html
@@ -0,0 +1,1002 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LazyDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LazyDataset" class="title">Class LazyDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LazyDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.35">LazyDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>
+implements <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.LazyDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#base">base</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#begSlice">begSlice</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#dtype">dtype</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#isize">isize</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#loader">loader</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#map">map</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oShape">oShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#postShape">postShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#prepShape">prepShape</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#size">size</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset(java.lang.String,%20int,%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                      int&nbsp;dtype,
+                      int[]&nbsp;shape,
+                      <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset(java.lang.String,%20int,%20int,%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                      int&nbsp;dtype,
+                      int&nbsp;elements,
+                      int[]&nbsp;shape,
+                      <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice(org.eclipse.january.dataset.SliceND)">calcTrueSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>
+<div class="block">Create a lazy dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice(int[],%20int[],%20int[])">createSlice</a></strong>(int[]&nbsp;nstart,
+                      int[]&nbsp;nstop,
+                      int[]&nbsp;nstep)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getDType()">getDType</a></strong>()</code>
+<div class="block">Can return -1 for unknown</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getElementsPerItem()">getElementsPerItem</a></strong>()</code>
+<div class="block">Can return -1 for unknown</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength(org.eclipse.january.dataset.ILazyDataset,%20int)">getMaxSliceLength</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazySet,
+                                  int&nbsp;dimension)</code>
+<div class="block">Gets the maximum size of a slice of a dataset in a given dimension
+ which should normally fit in memory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSize()">getSize</a></strong>()</code>
+<div class="block">The size of the dataset is the number of items in the array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#setShape(int...)">setShape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Set a compatible shape for dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#transformInput(org.eclipse.january.dataset.IDataset)">transformInput</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="oShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.38">oShape</a></pre>
+</li>
+</ul>
+<a name="size">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre>protected&nbsp;long <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.39">size</a></pre>
+</li>
+</ul>
+<a name="dtype">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dtype</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.40">dtype</a></pre>
+</li>
+</ul>
+<a name="isize">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isize</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.41">isize</a></pre>
+</li>
+</ul>
+<a name="loader">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loader</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a> <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.43">loader</a></pre>
+</li>
+</ul>
+<a name="base">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>base</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a> <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.44">base</a></pre>
+</li>
+</ul>
+<a name="prepShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>prepShape</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.47">prepShape</a></pre>
+</li>
+</ul>
+<a name="postShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postShape</h4>
+<pre>protected&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.48">postShape</a></pre>
+</li>
+</ul>
+<a name="begSlice">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>begSlice</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.49">begSlice</a></pre>
+</li>
+</ul>
+<a name="delSlice">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delSlice</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.50">delSlice</a></pre>
+</li>
+</ul>
+<a name="map">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>map</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.51">map</a></pre>
+</li>
+</ul>
+<a name="oMetadata">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>oMetadata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt; <a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.52">oMetadata</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LazyDataset(java.lang.String, int, int, int[], org.eclipse.january.io.ILazyLoader)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.62">LazyDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+           int&nbsp;dtype,
+           int&nbsp;elements,
+           int[]&nbsp;shape,
+           <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>dtype</code> - dataset type</dd><dd><code>elements</code> - </dd><dd><code>shape</code> - </dd><dd><code>loader</code> - </dd></dl>
+</li>
+</ul>
+<a name="LazyDataset(java.lang.String, int, int[], org.eclipse.january.io.ILazyLoader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.83">LazyDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+           int&nbsp;dtype,
+           int[]&nbsp;shape,
+           <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>dtype</code> - dataset type</dd><dd><code>shape</code> - </dd><dd><code>loader</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createLazyDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLazyDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.91">createLazyDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</pre>
+<div class="block">Create a lazy dataset based on in-memory data (handy for testing)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.113">getDType</a>()</pre>
+<div class="block">Can return -1 for unknown</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="getElementsPerItem()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementsPerItem</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.121">getElementsPerItem</a>()</pre>
+<div class="block">Can return -1 for unknown</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Number of elements per item</dd></dl>
+</li>
+</ul>
+<a name="getSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.126">getSize</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">ILazyDataset</a></code></strong></div>
+<div class="block">The size of the dataset is the number of items in the array</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>number of data items</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.131">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.155">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.196">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="setShape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setShape</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.212">setShape</a>(int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">ILazyDataset</a></code></strong></div>
+<div class="block">Set a compatible shape for dataset. A shape is compatible if it has the capacity to contain
+ the same number of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="squeezeEnds()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeEnds</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.217">squeezeEnds</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">ILazyDataset</a></code></strong></div>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.223">getSlice</a>(int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.228">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.236">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.241">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.249">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.332">getSliceView</a>(int[]&nbsp;start,
+                       int[]&nbsp;stop,
+                       int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.337">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.367">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">ILazyDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.393">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               int[]&nbsp;start,
+               int[]&nbsp;stop,
+               int[]&nbsp;step)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.398">getSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+               <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                 throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="calcTrueSlice(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcTrueSlice</h4>
+<pre>protected final&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.451">calcTrueSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+</li>
+</ul>
+<a name="transformInput(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transformInput</h4>
+<pre>protected final&nbsp;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.511">transformInput</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</pre>
+</li>
+</ul>
+<a name="createSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSlice</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.517">createSlice</a>(int[]&nbsp;nstart,
+                  int[]&nbsp;nstop,
+                  int[]&nbsp;nstep)</pre>
+</li>
+</ul>
+<a name="getMaxSliceLength(org.eclipse.january.dataset.ILazyDataset, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMaxSliceLength</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDataset.html#line.597">getMaxSliceLength</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazySet,
+                    int&nbsp;dimension)</pre>
+<div class="block">Gets the maximum size of a slice of a dataset in a given dimension
+ which should normally fit in memory. Note that it might be possible
+ to get more in memory, this is a conservative estimate and seems to
+ almost always work at the size returned; providing Xmx is less than
+ the physical memory.
+ 
+ To get more in memory increase -Xmx setting or use an expression
+ which calls a rolling function (like rmean) instead of slicing directly
+ to memory.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lazySet</code> - </dd><dd><code>dimension</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>maximum size of dimension that can be sliced.</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LazyDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/LazyDatasetBase.html
new file mode 100644
index 0000000..3d09e2b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LazyDatasetBase.html
@@ -0,0 +1,918 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LazyDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="LazyDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LazyDatasetBase" class="title">Class LazyDatasetBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LazyDatasetBase</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>, <a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.43">LazyDatasetBase</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.LazyDatasetBase">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></strong></code>
+<div class="block">The shape or dimensions of the dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#LazyDatasetBase()">LazyDatasetBase</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a></strong>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>
+<div class="block">Add metadata to the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a></strong>(int[]&nbsp;shape,
+                                      int...&nbsp;axes)</code>
+<div class="block">Check permutation axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>
+<div class="block">Remove metadata of given class</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;blob,
+                                            boolean&nbsp;keepLazy)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a></strong>()</code>
+<div class="block">Dirty metadata that are annotated by @Dirtiable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>
+<div class="block">Find first sub-interface of (or class that directly implements) MetadataType</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br>S</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank</a></strong>()</code>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape</a></strong>()</code>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a></strong>()</code>
+<div class="block">If error information is set, returns true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a></strong>(int[]&nbsp;oldShape,
+                              int[]&nbsp;newShape)</code>
+<div class="block">Reshape all datasets in metadata that are annotated by @Reshapeable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;oldMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a></strong>()</code>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</code>
+<div class="block">Set the errors.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></strong>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>
+<div class="block">Set metadata on the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a></strong>(boolean&nbsp;asView,
+                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Slice all datasets in metadata that are annotated by @Sliceable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></strong>(int[]&nbsp;axesMap)</code>
+<div class="block">Transpose all datasets in metadata that are annotated by @Transposable.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="logger">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>logger</h4>
+<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.47">logger</a></pre>
+</li>
+</ul>
+<a name="catchExceptions">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>catchExceptions</h4>
+<pre>protected static&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.49">catchExceptions</a></pre>
+</li>
+</ul>
+<a name="name">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.64">name</a></pre>
+</li>
+</ul>
+<a name="shape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>shape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.69">shape</a></pre>
+<div class="block">The shape or dimensions of the dataset</div>
+</li>
+</ul>
+<a name="metadata">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>metadata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt; <a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.71">metadata</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LazyDatasetBase()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyDatasetBase</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.43">LazyDatasetBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.76">getDType</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="getElementClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementClass</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.79">getElementClass</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Boxed class of element</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.84">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.89">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.114">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.124">getName</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the name</dd></dl>
+</li>
+</ul>
+<a name="setName(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.129">setName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.134">getShape</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">ILazyDataset</a></code></strong></div>
+<div class="block">The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank
+ datasets</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Copy of shape of dataset</dd></dl>
+</li>
+</ul>
+<a name="getRank()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRank</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.139">getRank</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">ILazyDataset</a></code></strong></div>
+<div class="block">The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank
+ (single-valued) dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>rank</dd></dl>
+</li>
+</ul>
+<a name="setDirty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDirty</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.148">setDirty</a>()</pre>
+<div class="block">This method allows anything that dirties the dataset to clear various metadata values
+ so that the other methods can work correctly.</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="findMetadataTypeSubInterfaces(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>findMetadataTypeSubInterfaces</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.159">findMetadataTypeSubInterfaces</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</pre>
+<div class="block">Find first sub-interface of (or class that directly implements) MetadataType</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sub-interface</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - when given class is <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><code>MetadataType</code></a> or an anonymous sub-class of it</dd></dl>
+</li>
+</ul>
+<a name="setMetadata(org.eclipse.january.metadata.MetadataType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.199">setMetadata</a>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">ILazyDataset</a></code></strong></div>
+<div class="block">Set metadata on the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - (null is ignored so use clear(null) instead)</dd></dl>
+</li>
+</ul>
+<a name="addMetadata(org.eclipse.january.metadata.MetadataType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.204">addMetadata</a>(<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">ILazyDataset</a></code></strong></div>
+<div class="block">Add metadata to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.238">getMetadata</a>()</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>an instance of IMetadata</dd></dl>
+</li>
+</ul>
+<a name="getMetadata(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre>public&nbsp;&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.244">getMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)
+                                         throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - if null return everything</dd>
+<dt><span class="strong">Returns:</span></dt><dd>list of metadata with given class (or its super interface)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getFirstMetadata(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirstMetadata</h4>
+<pre>public&nbsp;&lt;S extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;S&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.267">getFirstMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - if null return first from everything</dd>
+<dt><span class="strong">Returns:</span></dt><dd>first element from list of metadata with given class (or its super interface)</dd></dl>
+</li>
+</ul>
+<a name="clearMetadata(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clearMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.286">clearMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">ILazyDataset</a></code></strong></div>
+<div class="block">Remove metadata of given class</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - if null remove everything</dd></dl>
+</li>
+</ul>
+<a name="copyMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyMetadata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.304">copyMetadata</a>()</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="copyMetadata(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyMetadata</h4>
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.311">copyMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;metadata)</pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="sliceMetadata(boolean, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sliceMetadata</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.768">sliceMetadata</a>(boolean&nbsp;asView,
+                 <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Slice all datasets in metadata that are annotated by @Sliceable. Call this on the new sliced
+ dataset after cloning the metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>asView</code> - if true then just a view</dd><dd><code>slice</code> - </dd></dl>
+</li>
+</ul>
+<a name="reshapeMetadata(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reshapeMetadata</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.778">reshapeMetadata</a>(int[]&nbsp;oldShape,
+                   int[]&nbsp;newShape)</pre>
+<div class="block">Reshape all datasets in metadata that are annotated by @Reshapeable. Call this when squeezing
+ or setting the shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newShape</code> - </dd></dl>
+</li>
+</ul>
+<a name="transposeMetadata(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>transposeMetadata</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.787">transposeMetadata</a>(int[]&nbsp;axesMap)</pre>
+<div class="block">Transpose all datasets in metadata that are annotated by @Transposable. Call this on the transposed
+ dataset after cloning the metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axesMap</code> - </dd></dl>
+</li>
+</ul>
+<a name="dirtyMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dirtyMetadata</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.795">dirtyMetadata</a>()</pre>
+<div class="block">Dirty metadata that are annotated by @Dirtiable. Call this when the dataset has been modified</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="restoreMetadata(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>restoreMetadata</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.965">restoreMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;oldMetadata)</pre>
+</li>
+</ul>
+<a name="createFromSerializable(java.io.Serializable, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromSerializable</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.971">createFromSerializable</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;blob,
+                                  boolean&nbsp;keepLazy)</pre>
+</li>
+</ul>
+<a name="setErrors(java.io.Serializable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setErrors</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.1013">setErrors</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;errors)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">ILazyDataset</a></code></strong></div>
+<div class="block">Set the errors. It may be a single double, a double array or a
+ whole dataset that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>errors</code> - - may be null to remove the error set</dd></dl>
+</li>
+</ul>
+<a name="getErrorMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrorMetadata</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.1040">getErrorMetadata</a>()</pre>
+</li>
+</ul>
+<a name="getErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getErrors</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.1052">getErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">ILazyDataset</a></code></strong></div>
+<div class="block">Get the errors, if any. These will be in a shape that can broadcast to the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasErrors()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasErrors</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.1058">hasErrors</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">ILazyDataset</a></code></strong></div>
+<div class="block">If error information is set, returns true.
+ Faster to call than getError() which constructs a
+ new dataset.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is error data.</dd></dl>
+</li>
+</ul>
+<a name="checkPermutatedAxes(int[], int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>checkPermutatedAxes</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDatasetBase.html#line.1068">checkPermutatedAxes</a>(int[]&nbsp;shape,
+                        int...&nbsp;axes)</pre>
+<div class="block">Check permutation axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>axes</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>cleaned up axes or null if trivial</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="LazyDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LazyDynamicDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/LazyDynamicDataset.html
new file mode 100644
index 0000000..ea2bd6e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LazyDynamicDataset.html
@@ -0,0 +1,605 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LazyDynamicDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyDynamicDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LazyDynamicDataset" class="title">Class LazyDynamicDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LazyDynamicDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.17">LazyDynamicDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a>
+implements <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.LazyDynamicDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#checker">checker</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#eventDelegate">eventDelegate</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#maxShape">maxShape</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#begSlice">begSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#dtype">dtype</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#isize">isize</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#loader">loader</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#map">map</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oShape">oShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#postShape">postShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#prepShape">prepShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#size">size</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IDynamicDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html#UNLIMITED">UNLIMITED</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset(java.lang.String,%20int,%20int,%20int[],%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDynamicDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                    int&nbsp;dtype,
+                                    int&nbsp;elements,
+                                    int[]&nbsp;shape,
+                                    int[]&nbsp;maxShape,
+                                    <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>
+<div class="block">Add a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#fireDataListeners()">fireDataListeners</a></strong>()</code>
+<div class="block">Alert any registered listeners</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getDataset()">getDataset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getMaxShape()">getMaxShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#refreshShape()">refreshShape</a></strong>()</code>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>
+<div class="block">Remove a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#setMaxShape(int...)">setMaxShape</a></strong>(int...&nbsp;maxShape)</code>
+<div class="block">Set maximum shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></strong>(int&nbsp;milliseconds,
+                                    <a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>&nbsp;checker)</code>
+<div class="block">Starts a periodic checker to see if dataset has changed in some manner.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice(org.eclipse.january.dataset.SliceND)">calcTrueSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice(int[],%20int[],%20int[])">createSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength(org.eclipse.january.dataset.ILazyDataset,%20int)">getMaxSliceLength</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#transformInput(org.eclipse.january.dataset.IDataset)">transformInput</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="maxShape">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxShape</h4>
+<pre>protected&nbsp;int[] <a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.20">maxShape</a></pre>
+</li>
+</ul>
+<a name="eventDelegate">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>eventDelegate</h4>
+<pre>protected transient&nbsp;<a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a> <a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.22">eventDelegate</a></pre>
+</li>
+</ul>
+<a name="checker">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>checker</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a> <a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.24">checker</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LazyDynamicDataset(java.lang.String, int, int, int[], int[], org.eclipse.january.io.ILazyLoader)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyDynamicDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.50">LazyDynamicDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                  int&nbsp;dtype,
+                  int&nbsp;elements,
+                  int[]&nbsp;shape,
+                  int[]&nbsp;maxShape,
+                  <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDataset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataset</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.76">getDataset</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset associated with shape</dd></dl>
+</li>
+</ul>
+<a name="addDataListener(org.eclipse.january.dataset.IDataListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDataListener</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.81">addDataListener</a>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">IDynamicShape</a></code></strong></div>
+<div class="block">Add a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="removeDataListener(org.eclipse.january.dataset.IDataListener)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeDataListener</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.86">removeDataListener</a>(<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">IDynamicShape</a></code></strong></div>
+<div class="block">Remove a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="fireDataListeners()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fireDataListeners</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.91">fireDataListeners</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">IDynamicShape</a></code></strong></div>
+<div class="block">Alert any registered listeners</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="refreshShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>refreshShape</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.98">refreshShape</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">IDynamicShape</a></code></strong></div>
+<div class="block">Force the shape to be re-read from file, if possible</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if shape has changed</dd></dl>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.106">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">IDynamicShape</a></code></strong></div>
+<div class="block">Change shape</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if shape has changed</dd></dl>
+</li>
+</ul>
+<a name="getMaxShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.140">getMaxShape</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>maximum shape (can be null)</dd></dl>
+</li>
+</ul>
+<a name="setMaxShape(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxShape</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.145">setMaxShape</a>(int...&nbsp;maxShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">IDynamicShape</a></code></strong></div>
+<div class="block">Set maximum shape</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>maxShape</code> - maximum shape</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.170">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="startUpdateChecker(int, org.eclipse.january.dataset.IDatasetChangeChecker)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>startUpdateChecker</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyDynamicDataset.html#line.188">startUpdateChecker</a>(int&nbsp;milliseconds,
+                      <a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>&nbsp;checker)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">IDynamicShape</a></code></strong></div>
+<div class="block">Starts a periodic checker to see if dataset has changed in some manner. If any potential changes
+ are detected after the period has finished then registered listeners are alerted.
+ A period of 0 or less will stop any existing checker.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>milliseconds</code> - period between checks in milliseconds</dd><dd><code>checker</code> - can be null for default implementation of alerting listeners unconditionally</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyDynamicDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LazyMaths.html b/apidocs/2.1.1/org/eclipse/january/dataset/LazyMaths.html
new file mode 100644
index 0000000..082b255
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LazyMaths.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyMaths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LazyMaths (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyMaths.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyMaths.html" target="_top">Frames</a></li>
+<li><a href="LazyMaths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LazyMaths" class="title">Class LazyMaths</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LazyMaths</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public final class <a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.27">LazyMaths</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Mathematics class for lazy datasets</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#logger">logger</a></strong></code>
+<div class="block">Setup the logging facilities</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#max(org.eclipse.january.dataset.ILazyDataset,%20int...)">max</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean(org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#mean(int,%20int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(int&nbsp;start,
+        int&nbsp;stop,
+        <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#min(org.eclipse.january.dataset.ILazyDataset,%20int...)">min</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#product(org.eclipse.january.dataset.ILazyDataset,%20int)">product</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+              int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20boolean,%20int...)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      boolean&nbsp;ignore,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int...)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="logger">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>logger</h4>
+<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.39">logger</a></pre>
+<div class="block">Setup the logging facilities</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="max(org.eclipse.january.dataset.ILazyDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.149">max</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+          int...&nbsp;axes)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>axes</code> - (can be negative). If null or empty then use all axes</dd>
+<dt><span class="strong">Returns:</span></dt><dd>maximum along axes in lazy dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="min(org.eclipse.january.dataset.ILazyDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>min</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.169">min</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+          int...&nbsp;axes)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>axes</code> - (can be negative). If null or empty then use all axes</dd>
+<dt><span class="strong">Returns:</span></dt><dd>minimum along axes in lazy dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="sum(org.eclipse.january.dataset.ILazyDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.188">sum</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+          int&nbsp;axis)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>axis</code> - (can be negative)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum along axis in lazy dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="sum(org.eclipse.january.dataset.ILazyDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.217">sum</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+          int...&nbsp;ignoreAxes)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>ignoreAxes</code> - axes to ignore</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum when given axes are ignored in lazy dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="sum(org.eclipse.january.dataset.ILazyDataset, boolean, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.229">sum</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+          boolean&nbsp;ignore,
+          int...&nbsp;axes)
+                   throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>ignore</code> - if true, ignore the provided axes, otherwise use only the provided axes</dd><dd><code>axes</code> - axes to ignore or accept, depending on the preceding flag</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="product(org.eclipse.january.dataset.ILazyDataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.265">product</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+              int&nbsp;axis)
+                       throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>axis</code> - (can be negative)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>product along axis in lazy dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="mean(int, int, org.eclipse.january.dataset.ILazyDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.294">mean</a>(int&nbsp;start,
+           int&nbsp;stop,
+           <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int...&nbsp;ignoreAxes)
+                    throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - </dd><dd><code>stop</code> - inclusive</dd><dd><code>data</code> - </dd><dd><code>ignoreAxes</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>mean when given axes are ignored in lazy dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="mean(org.eclipse.january.dataset.ILazyDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>mean</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyMaths.html#line.323">mean</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+           int...&nbsp;ignoreAxes)
+                    throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyMaths.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyMaths.html" target="_top">Frames</a></li>
+<li><a href="LazyMaths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LazyWriteableDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/LazyWriteableDataset.html
new file mode 100644
index 0000000..09c981e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LazyWriteableDataset.html
@@ -0,0 +1,872 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LazyWriteableDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyWriteableDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.LazyDynamicDataset">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LazyWriteableDataset" class="title">Class LazyWriteableDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDynamicDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LazyWriteableDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.23">LazyWriteableDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a>
+implements <a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></pre>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.LazyWriteableDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDynamicDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#checker">checker</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#eventDelegate">eventDelegate</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#maxShape">maxShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#begSlice">begSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#delSlice">delSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#dtype">dtype</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#isize">isize</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#loader">loader</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#map">map</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#oShape">oShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#postShape">postShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#prepShape">prepShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#size">size</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.ILazyWriteableDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#UNLIMITED">UNLIMITED</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20java.lang.Class,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20java.lang.Class,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
+                                        int&nbsp;elements,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        int&nbsp;dtype,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20int,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        int&nbsp;dtype,
+                                        int&nbsp;elements,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset,%20int[])">createLazyDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                  int[]&nbsp;maxShape)</code>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createSlice(int[],%20int[],%20int[])">createSlice</a></strong>(int[]&nbsp;nstart,
+                      int[]&nbsp;nstop,
+                      int[]&nbsp;nstep)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getChunking()">getChunking</a></strong>()</code>
+<div class="block">Get chunking</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getFillValue()">getFillValue</a></strong>()</code>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setChunking(int...)">setChunking</a></strong>(int...&nbsp;chunks)</code>
+<div class="block">Set chunking</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setFillValue(java.lang.Object)">setFillValue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;fill)</code>
+<div class="block">Set the value used to fill an un-initialized dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver</a></strong>(<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Set saver (and also loader)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset synchronously</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setWritingAsync(boolean)">setWritingAsync</a></strong>(boolean&nbsp;async)</code>
+<div class="block">Set writing slices as asynchronous</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDynamicDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#fireDataListeners()">fireDataListeners</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getDataset()">getDataset</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getMaxShape()">getMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#refreshShape()">refreshShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#setMaxShape(int...)">setMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice(org.eclipse.january.dataset.SliceND)">calcTrueSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength(org.eclipse.january.dataset.ILazyDataset,%20int)">getMaxSliceLength</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/LazyDataset.html#transformInput(org.eclipse.january.dataset.IDataset)">transformInput</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDynamicShape">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#fireDataListeners()">fireDataListeners</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#getMaxShape()">getMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#refreshShape()">refreshShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#setMaxShape(int...)">setMaxShape</a>, <a href="../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LazyWriteableDataset(java.lang.String, int, int, int[], int[], int[], org.eclipse.january.io.ILazySaver)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyWriteableDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.40">LazyWriteableDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    int&nbsp;dtype,
+                    int&nbsp;elements,
+                    int[]&nbsp;shape,
+                    int[]&nbsp;maxShape,
+                    int[]&nbsp;chunks,
+                    <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>dtype</code> - dataset type</dd><dd><code>elements</code> - </dd><dd><code>shape</code> - </dd><dd><code>maxShape</code> - </dd><dd><code>chunks</code> - </dd><dd><code>saver</code> - </dd></dl>
+</li>
+</ul>
+<a name="LazyWriteableDataset(java.lang.String, int, int[], int[], int[], org.eclipse.january.io.ILazySaver)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyWriteableDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.57">LazyWriteableDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    int&nbsp;dtype,
+                    int[]&nbsp;shape,
+                    int[]&nbsp;maxShape,
+                    int[]&nbsp;chunks,
+                    <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>dtype</code> - dataset type</dd><dd><code>shape</code> - </dd><dd><code>maxShape</code> - </dd><dd><code>chunks</code> - </dd><dd><code>saver</code> - </dd></dl>
+</li>
+</ul>
+<a name="LazyWriteableDataset(java.lang.String, java.lang.Class, int, int[], int[], int[], org.eclipse.january.io.ILazySaver)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LazyWriteableDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.71">LazyWriteableDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
+                    int&nbsp;elements,
+                    int[]&nbsp;shape,
+                    int[]&nbsp;maxShape,
+                    int[]&nbsp;chunks,
+                    <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>clazz</code> - dataset element class</dd><dd><code>elements</code> - </dd><dd><code>shape</code> - </dd><dd><code>maxShape</code> - </dd><dd><code>chunks</code> - </dd><dd><code>saver</code> - </dd></dl>
+</li>
+</ul>
+<a name="LazyWriteableDataset(java.lang.String, java.lang.Class, int[], int[], int[], org.eclipse.january.io.ILazySaver)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LazyWriteableDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.84">LazyWriteableDataset</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
+                    int[]&nbsp;shape,
+                    int[]&nbsp;maxShape,
+                    int[]&nbsp;chunks,
+                    <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</pre>
+<div class="block">Create a lazy dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>clazz</code> - dataset element class</dd><dd><code>shape</code> - </dd><dd><code>maxShape</code> - </dd><dd><code>chunks</code> - </dd><dd><code>saver</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createLazyDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLazyDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.92">createLazyDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</pre>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="createLazyDataset(org.eclipse.january.dataset.Dataset, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createLazyDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.100">createLazyDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                     int[]&nbsp;maxShape)</pre>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="getChunking()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getChunking</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.139">getChunking</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getChunking()">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Get chunking</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getChunking()">getChunking</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>chunks (can be null)</dd></dl>
+</li>
+</ul>
+<a name="setChunking(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setChunking</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.144">setChunking</a>(int...&nbsp;chunks)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setChunking(int...)">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Set chunking</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setChunking(int...)">setChunking</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>chunks</code> - chunk shape</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.149">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.167">getSliceView</a>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.172">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an array of slice objects (the array can be null or contain nulls)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceView(org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.177">getSliceView</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">ILazyDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned lazy dataset is a view on a selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The sliced view of a lazy dataset</dd></dl>
+</li>
+</ul>
+<a name="getTransposedView(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTransposedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.182">getTransposedView</a>(int...&nbsp;axes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">ILazyDataset</a></code></strong></div>
+<div class="block">Permute copy of dataset's axes so that given order is old order:
+ 
+ <pre>
+  axisPerm = (p(0), p(1),...) => newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)
+  such that n(i) = o(p(i)) for all i
+ </pre>
+ 
+ I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along
+ the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left
+ unchanged.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#getTransposedView(int...)">getTransposedView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>axes</code> - if zero length then axes order reversed</dd>
+<dt><span class="strong">Returns:</span></dt><dd>remapped view of data</dd></dl>
+</li>
+</ul>
+<a name="setWritingAsync(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setWritingAsync</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.187">setWritingAsync</a>(boolean&nbsp;async)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setWritingAsync(boolean)">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Set writing slices as asynchronous</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setWritingAsync(boolean)">setWritingAsync</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setSlice(org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.198">setSlice</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+            <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+              throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block">Set a slice of the dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - </dd><dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.203">setSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+            int[]&nbsp;start,
+            int[]&nbsp;stop,
+            int[]&nbsp;step)
+              throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Set a slice of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dd><code>start</code> - specifies the starting indexes (can be null for origin)</dd><dd><code>stop</code> - specifies the stopping indexes (can be null for end)</dd><dd><code>step</code> - specifies the steps in the slice (can be null for unit steps)</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.208">setSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+            <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+              throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Set a slice of the dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setSliceSync(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSliceSync</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.213">setSliceSync</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                  throws <a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Set a slice of the dataset synchronously</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dd><code>slice</code> - an n-D slice</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></code></dd></dl>
+</li>
+</ul>
+<a name="setSaver(org.eclipse.january.io.ILazySaver)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSaver</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.261">setSaver</a>(<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</pre>
+<div class="block">Set saver (and also loader)</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>saver</code> - </dd></dl>
+</li>
+</ul>
+<a name="createSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSlice</h4>
+<pre>protected&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.267">createSlice</a>(int[]&nbsp;nstart,
+                  int[]&nbsp;nstop,
+                  int[]&nbsp;nstep)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice(int[],%20int[],%20int[])">createSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getFillValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFillValue</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.275">getFillValue</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getFillValue()">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Get the value used to fill an un-initialized dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#getFillValue()">getFillValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>fill value</dd></dl>
+</li>
+</ul>
+<a name="setFillValue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setFillValue</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LazyWriteableDataset.html#line.280">setFillValue</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;fill)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setFillValue(java.lang.Object)">ILazyWriteableDataset</a></code></strong></div>
+<div class="block">Set the value used to fill an un-initialized dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setFillValue(java.lang.Object)">setFillValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LazyWriteableDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.LazyDynamicDataset">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html b/apidocs/2.1.1/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..25339f9
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LinearAlgebra.NormOrder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LinearAlgebra.NormOrder (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LinearAlgebra.NormOrder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.NormOrder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum_constant_summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum_constant_detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Enum LinearAlgebra.NormOrder" class="title">Enum LinearAlgebra.NormOrder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LinearAlgebra.NormOrder</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.727">LinearAlgebra.NormOrder</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&gt;</pre>
+<div class="block">Order value for norm</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#DEFAULT">DEFAULT</a></strong></code>
+<div class="block">2-norm for vectors and Frobenius for matrices</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#FROBENIUS">FROBENIUS</a></strong></code>
+<div class="block">Frobenius (not allowed for vectors)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#NEG_INFINITY">NEG_INFINITY</a></strong></code>
+<div class="block">Negative infinity</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#POS_INFINITY">POS_INFINITY</a></strong></code>
+<div class="block">Positive infinity</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#ZERO">ZERO</a></strong></code>
+<div class="block">Zero-order (not allowed for matrices)</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#valueOf(java.lang.String)">valueOf</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#values()">values</a></strong>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,%20java.lang.String)" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum_constant_detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="DEFAULT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a> <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.731">DEFAULT</a></pre>
+<div class="block">2-norm for vectors and Frobenius for matrices</div>
+</li>
+</ul>
+<a name="FROBENIUS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FROBENIUS</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a> <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.735">FROBENIUS</a></pre>
+<div class="block">Frobenius (not allowed for vectors)</div>
+</li>
+</ul>
+<a name="ZERO">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ZERO</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a> <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.739">ZERO</a></pre>
+<div class="block">Zero-order (not allowed for matrices)</div>
+</li>
+</ul>
+<a name="POS_INFINITY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>POS_INFINITY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a> <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.743">POS_INFINITY</a></pre>
+<div class="block">Positive infinity</div>
+</li>
+</ul>
+<a name="NEG_INFINITY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NEG_INFINITY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a> <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.747">NEG_INFINITY</a></pre>
+<div class="block">Negative infinity</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.727">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (LinearAlgebra.NormOrder c : LinearAlgebra.NormOrder.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the constants of this enum type, in the order they are declared</dd></dl>
+</li>
+</ul>
+<a name="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#line.727">valueOf</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the enum constant with the specified name</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LinearAlgebra.NormOrder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.NormOrder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum_constant_summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum_constant_detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LinearAlgebra.html b/apidocs/2.1.1/org/eclipse/january/dataset/LinearAlgebra.html
new file mode 100644
index 0000000..f57d63a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LinearAlgebra.html
@@ -0,0 +1,837 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LinearAlgebra (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LinearAlgebra (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LinearAlgebra.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LinearAlgebra.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LinearAlgebra" class="title">Class LinearAlgebra</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LinearAlgebra</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.33">LinearAlgebra</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></strong></code>
+<div class="block">Order value for norm</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#LinearAlgebra()">LinearAlgebra</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition(org.eclipse.january.dataset.Dataset)">calcCholeskyDecomposition</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate Cholesky decomposition A = L L^T</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConditionNumber(org.eclipse.january.dataset.Dataset)">calcConditionNumber</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate condition number of matrix by singular value decomposition method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">calcConjugateGradient</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20double)">calcConjugateGradient</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v,
+                                          int&nbsp;maxIterations,
+                                          double&nbsp;delta)</code>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < delta ||v||</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcDeterminant(org.eclipse.january.dataset.Dataset)">calcDeterminant</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition(org.eclipse.january.dataset.Dataset)">calcEigenDecomposition</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate eigen-decomposition A = V D V^T</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues(org.eclipse.january.dataset.Dataset)">calcEigenvalues</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcInverse(org.eclipse.january.dataset.Dataset)">calcInverse</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate inverse of square dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition(org.eclipse.january.dataset.Dataset)">calcLUDecomposition</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate LU decomposition A = P^-1 L U</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcMatrixRank(org.eclipse.january.dataset.Dataset)">calcMatrixRank</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate matrix rank by singular value decomposition method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse(org.eclipse.january.dataset.Dataset)">calcPseudoInverse</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate (Moore-Penrose) pseudo-inverse</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition(org.eclipse.january.dataset.Dataset)">calcQRDecomposition</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate QR decomposition A = Q R</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition(org.eclipse.january.dataset.Dataset)">calcSingularValueDecomposition</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate singular value decomposition A = U S V^T</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValues(org.eclipse.january.dataset.Dataset)">calcSingularValues</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">crossProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the cross product of two datasets.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">crossProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                        int&nbsp;axisA,
+                        int&nbsp;axisB,
+                        int&nbsp;axisC)</code>
+<div class="block">Calculate the cross product of two datasets.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#dotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">dotProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the dot product of two datasets.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">kroneckerProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Create the Kronecker product as defined by 
+ kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]
+ where kn = sn * in + jn for n = 0...N and s is shape of b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset)">norm</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20double)">norm</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        double&nbsp;p)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.LinearAlgebra.NormOrder)">norm</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&nbsp;order)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#outerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">outerProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the outer product of two datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#power(org.eclipse.january.dataset.Dataset,%20int)">power</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;n)</code>
+<div class="block">Raise dataset to given power by matrix multiplication</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#solve(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solve</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Solve linear matrix equation A x = v</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#solveSVD(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solveSVD</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Solve least squares matrix equation A x = v by SVD</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">tensorDotProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                int[]&nbsp;axisa,
+                                int[]&nbsp;axisb)</code>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int)">tensorDotProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                int&nbsp;axisa,
+                                int&nbsp;axisb)</code>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset)">trace</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate trace of dataset - sum of values over 1st axis and 2nd axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">trace</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;offset,
+          int&nbsp;axis1,
+          int&nbsp;axis2)</code>
+<div class="block">Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LinearAlgebra()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LinearAlgebra</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.33">LinearAlgebra</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tensorDotProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tensorDotProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.46">tensorDotProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                       int&nbsp;axisa,
+                       int&nbsp;axisb)</pre>
+<div class="block">Calculate the tensor dot product over given axes. This is the sum of products of elements selected
+ from the given axes in each dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>axisa</code> - axis dimension in a to sum over (can be -ve)</dd><dd><code>axisb</code> - axis dimension in b to sum over (can be -ve)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>tensor dot product</dd></dl>
+</li>
+</ul>
+<a name="tensorDotProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tensorDotProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.119">tensorDotProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                       int[]&nbsp;axisa,
+                       int[]&nbsp;axisb)</pre>
+<div class="block">Calculate the tensor dot product over given axes. This is the sum of products of elements selected
+ from the given axes in each dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>axisa</code> - axis dimensions in a to sum over (can be -ve)</dd><dd><code>axisb</code> - axis dimensions in b to sum over (can be -ve)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>tensor dot product</dd></dl>
+</li>
+</ul>
+<a name="dotProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>dotProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.209">dotProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<div class="block">Calculate the dot product of two datasets. When <b>b</b> is a 1D dataset, the sum product over
+ the last axis of <b>a</b> and <b>b</b> is returned. Where <b>a</b> is also a 1D dataset, a zero-rank dataset
+ is returned. If <b>b</b> is 2D or higher, its second-to-last axis is used</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dot product</dd></dl>
+</li>
+</ul>
+<a name="outerProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outerProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.221">outerProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<div class="block">Calculate the outer product of two datasets</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>outer product</dd></dl>
+</li>
+</ul>
+<a name="crossProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>crossProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.260">crossProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<div class="block">Calculate the cross product of two datasets. Datasets must be broadcastable and
+ possess last dimensions of length 2 or 3</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>cross product</dd></dl>
+</li>
+</ul>
+<a name="crossProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>crossProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.275">crossProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                   int&nbsp;axisA,
+                   int&nbsp;axisB,
+                   int&nbsp;axisC)</pre>
+<div class="block">Calculate the cross product of two datasets. Datasets must be broadcastable and
+ possess dimensions of length 2 or 3. The axis parameters can be negative to indicate
+ dimensions from the end of their shapes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>axisA</code> - dimension to be used a vector (must have length of 2 or 3)</dd><dd><code>axisB</code> - dimension to be used a vector (must have length of 2 or 3)</dd><dd><code>axisC</code> - dimension to assign as cross-product</dd>
+<dt><span class="strong">Returns:</span></dt><dd>cross product</dd></dl>
+</li>
+</ul>
+<a name="power(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>power</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.504">power</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;n)</pre>
+<div class="block">Raise dataset to given power by matrix multiplication</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - power</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a ** n</dd></dl>
+</li>
+</ul>
+<a name="kroneckerProduct(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>kroneckerProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.523">kroneckerProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<div class="block">Create the Kronecker product as defined by 
+ kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]
+ where kn = sn * in + jn for n = 0...N and s is shape of b</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>Kronecker product of a and b</dd></dl>
+</li>
+</ul>
+<a name="trace(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.620">trace</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate trace of dataset - sum of values over 1st axis and 2nd axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>trace of dataset</dd></dl>
+</li>
+</ul>
+<a name="trace(org.eclipse.january.dataset.Dataset, int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.632">trace</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;offset,
+            int&nbsp;axis1,
+            int&nbsp;axis2)</pre>
+<div class="block">Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>offset</code> - </dd><dd><code>axis1</code> - </dd><dd><code>axis2</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>trace of dataset</dd></dl>
+</li>
+</ul>
+<a name="norm(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>norm</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.754">norm</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>norm of dataset</dd></dl>
+</li>
+</ul>
+<a name="norm(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.LinearAlgebra.NormOrder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>norm</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.763">norm</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          <a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&nbsp;order)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>order</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>norm of dataset</dd></dl>
+</li>
+</ul>
+<a name="norm(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>norm</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.869">norm</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          double&nbsp;p)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>p</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>p-norm of dataset</dd></dl>
+</li>
+</ul>
+<a name="calcSingularValues(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcSingularValues</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.987">calcSingularValues</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>array of singular values</dd></dl>
+</li>
+</ul>
+<a name="calcSingularValueDecomposition(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcSingularValueDecomposition</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.998">calcSingularValueDecomposition</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate singular value decomposition A = U S V^T</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix</dd></dl>
+</li>
+</ul>
+<a name="calcPseudoInverse(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcPseudoInverse</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1009">calcPseudoInverse</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate (Moore-Penrose) pseudo-inverse</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>pseudo-inverse</dd></dl>
+</li>
+</ul>
+<a name="calcMatrixRank(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcMatrixRank</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1019">calcMatrixRank</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate matrix rank by singular value decomposition method</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>effective numerical rank of matrix</dd></dl>
+</li>
+</ul>
+<a name="calcConditionNumber(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcConditionNumber</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1029">calcConditionNumber</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate condition number of matrix by singular value decomposition method</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>condition number</dd></dl>
+</li>
+</ul>
+<a name="calcDeterminant(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcDeterminant</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1038">calcDeterminant</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>determinant of dataset</dd></dl>
+</li>
+</ul>
+<a name="calcEigenvalues(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcEigenvalues</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1047">calcEigenvalues</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of eigenvalues (can be double or complex double)</dd></dl>
+</li>
+</ul>
+<a name="calcEigenDecomposition(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcEigenDecomposition</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1063">calcEigenDecomposition</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate eigen-decomposition A = V D V^T</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>array of D eigenvalues (can be double or complex double) and V eigenvectors</dd></dl>
+</li>
+</ul>
+<a name="calcQRDecomposition(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcQRDecomposition</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1083">calcQRDecomposition</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate QR decomposition A = Q R</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>array of Q and R</dd></dl>
+</li>
+</ul>
+<a name="calcLUDecomposition(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcLUDecomposition</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1093">calcLUDecomposition</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate LU decomposition A = P^-1 L U</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>array of L, U and P</dd></dl>
+</li>
+</ul>
+<a name="calcInverse(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcInverse</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1104">calcInverse</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate inverse of square dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>inverse</dd></dl>
+</li>
+</ul>
+<a name="solve(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>solve</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1115">solve</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</pre>
+<div class="block">Solve linear matrix equation A x = v</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>v</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>x</dd></dl>
+</li>
+</ul>
+<a name="solveSVD(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>solveSVD</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1132">solveSVD</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</pre>
+<div class="block">Solve least squares matrix equation A x = v by SVD</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>v</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>x</dd></dl>
+</li>
+</ul>
+<a name="calcCholeskyDecomposition(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcCholeskyDecomposition</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1147">calcCholeskyDecomposition</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Calculate Cholesky decomposition A = L L^T</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>L</dd></dl>
+</li>
+</ul>
+<a name="calcConjugateGradient(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcConjugateGradient</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1159">calcConjugateGradient</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</pre>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>v</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>solution of A^-1 v by conjugate gradient method</dd></dl>
+</li>
+</ul>
+<a name="calcConjugateGradient(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, int, double)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>calcConjugateGradient</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LinearAlgebra.html#line.1172">calcConjugateGradient</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v,
+                            int&nbsp;maxIterations,
+                            double&nbsp;delta)</pre>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < delta ||v||</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>v</code> - </dd><dd><code>maxIterations</code> - </dd><dd><code>delta</code> - parameter used by stopping criterion</dd>
+<dt><span class="strong">Returns:</span></dt><dd>solution of A^-1 v by conjugate gradient method</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LinearAlgebra.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LinearAlgebra.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/LongDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/LongDataset.html
new file mode 100644
index 0000000..bd079d8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/LongDataset.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="LongDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LongDataset.html" target="_top">Frames</a></li>
+<li><a href="LongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class LongDataset" class="title">Class LongDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.LongDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.30">LongDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.LongDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setAbs(int,%20long)">setAbs</a></strong>(int&nbsp;index,
+            long&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem(long)">setItem</a></strong>(long&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem(long,%20int...)">setItem</a></strong>(long&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem(long,%20int)">setItem</a></strong>(long&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItem(long,%20int,%20int)">setItem</a></strong>(long&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/LongDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;long[] <a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.34">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.37">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.41">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.56">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.180">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.185">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.251">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;long[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.266">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.271">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.278">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.293">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.298">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.303">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.308">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.313">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.318">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.332">setAbs</a>(int&nbsp;index,
+          long&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.338">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.345">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.357">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.365">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.374">get</a>(int&nbsp;i,
+       int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.382">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.387">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.392">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.397">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.402">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.407">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.412">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.417">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.422">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.427">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.432">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.437">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.442">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.447">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.452">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.457">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.462">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.467">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.472">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.477">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.482">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.487">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.492">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.497">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.502">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.507">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.512">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.517">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.522">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.527">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.532">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.537">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.542">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.547">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.552">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.557">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.562">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.572">setItem</a>(long&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(long, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.582">setItem</a>(long&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(long, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.593">setItem</a>(long&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(long, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.603">setItem</a>(long&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.608">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.613">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.618">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.623">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.632">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.656">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.683">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.700">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.712">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.724">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.752">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.779">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                       <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.818">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                   <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.858">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.877">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.908">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.926">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.944">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.949">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.954">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.959">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.994">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.1030">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.1065">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.1117">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.1122">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.1170">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/LongDataset.html#line.1238">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/LongDataset.html" target="_top">Frames</a></li>
+<li><a href="LongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Maths.html b/apidocs/2.1.1/org/eclipse/january/dataset/Maths.html
new file mode 100644
index 0000000..253ff46
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Maths.html
@@ -0,0 +1,1227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Maths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Maths (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Maths.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Maths.html" target="_top">Frames</a></li>
+<li><a href="Maths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Maths" class="title">Class Maths</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.internal.GeneratedMaths</li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Maths</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.27">Maths</a>
+extends org.eclipse.january.dataset.internal.GeneratedMaths</pre>
+<div class="block">Mathematics class</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#Maths()">Maths</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#abs(java.lang.Object)">abs</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">abs - absolute value of each element</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#abs(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">abs</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">abs - absolute value of each element</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#add(java.util.Collection,%20boolean)">add</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+      boolean&nbsp;requireClone)</code>
+<div class="block">Adds all sets passed in together
+ 
+ The first IDataset must cast to Dataset
+ 
+ For memory efficiency sake if add(...) is called with a set of size one,
+ no clone is done, the original object is returned directly.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          boolean&nbsp;inDegrees)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean,%20org.eclipse.january.dataset.Dataset)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          boolean&nbsp;inDegrees,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object)">arctan2</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arctan2</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#centralDifference(org.eclipse.january.dataset.Dataset,%20int)">centralDifference</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite central difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object)">conjugate</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">conjugate</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#derivative(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int)">derivative</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                    int&nbsp;n)</code>
+<div class="block">Calculates the derivative of a line described by two datasets (x,y) given
+ a spread of n either side of the point</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#difference(org.eclipse.january.dataset.Dataset,%20int,%20int)">difference</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    int&nbsp;n,
+                    int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object)">floorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object)">floorRemainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorRemainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#getBilinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">getBilinear</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use
+             <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)"><code>interpolate(double[], CompoundDataset, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20double,%20double)">getBilinear</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>interpolate(Dataset, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20double,%20double)">getBilinear</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                      <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;m,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>interpolate(Dataset, Dataset, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#getLinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">getLinear</a></strong>(double[]&nbsp;values,
+                  <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                  double&nbsp;x0)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)"><code>interpolate(double[], CompoundDataset, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#getLinear(org.eclipse.january.dataset.IDataset,%20double)">getLinear</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                  double&nbsp;x0)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)"><code>interpolate(Dataset, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#gradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">gradient</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;x)</code>
+<div class="block">Calculate gradient (or partial derivatives) by central difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object)">hypot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">hypot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double...)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                      double...&nbsp;x)</code>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                      double&nbsp;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IDataset,%20java.lang.Number,%20java.lang.Number)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;x0,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;left,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</code>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double...)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      double...&nbsp;x)</code>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      double&nbsp;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)">interpolate</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double...)">interpolate</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double...&nbsp;x)</code>
+<div class="block">Linearly interpolate an array of values at a point in a compound n-D
+ dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">interpolate</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double&nbsp;x0)</code>
+<div class="block">Linearly interpolate an array of values at a point in a compound 1D
+ dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">interpolate</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block">Linearly interpolate an array of values at a point in a compound 2D
+ dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#multiply(java.util.Collection,%20boolean)">multiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+                boolean&nbsp;requireClone)</code>
+<div class="block">Multiplies all sets passed in together
+ 
+ The first IDataset must cast to Dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20boolean)">phaseAsComplexNumber</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">phaseAsComplexNumber</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                        boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object)">reciprocal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Find reciprocal from dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">reciprocal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Find reciprocal from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object...)">unwrap</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;a)</code>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">unwrap</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object,%20java.lang.Object)">unwrap</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.internal.GeneratedMaths">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.internal.GeneratedMaths</h3>
+<code>add, add, addBinaryOperatorName, addFunctionName, addFunctionName, arccos, arccos, arccosh, arccosh, arcsin, arcsin, arcsinh, arcsinh, arctan, arctan, arctanh, arctanh, bitwiseAnd, bitwiseAnd, bitwiseInvert, bitwiseInvert, bitwiseOr, bitwiseOr, bitwiseXor, bitwiseXor, cbrt, cbrt, ceil, ceil, clip, clip, cos, cos, cosh, cosh, divide, divide, divideTowardsFloor, divideTowardsFloor, dividez, dividez, exp, exp, expm1, expm1, floor, floor, leftShift, leftShift, log, log, log10, log10, log1p, log1p, log2, log2, maximum, maximum, minimum, minimum, multiply, multiply, negative, negative, power, power, remainder, remainder, rightShift, rightShift, rint, rint, signum, signum, sin, sin, sinh, sinh, sqrt, sqrt, square, square, subtract, subtract, tan, tan, tanh, tanh, toDegrees, toDegrees, toLong, toRadians, toRadians, truncate, truncate, unsignedRightShift, unsignedRightShift</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Maths()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Maths</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.27">Maths</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="unwrap(org.eclipse.january.dataset.Dataset, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unwrap</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.35">unwrap</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset if a is a dataset or an object of the same class as o</dd></dl>
+</li>
+</ul>
+<a name="unwrap(org.eclipse.january.dataset.Dataset, java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unwrap</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.47">unwrap</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset if either a and b are datasets or an object of the same
+         class as o</dd></dl>
+</li>
+</ul>
+<a name="unwrap(org.eclipse.january.dataset.Dataset, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unwrap</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.59">unwrap</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;a)</pre>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - </dd><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset if any inputs are datasets or an object of the same
+         class as o</dd></dl>
+</li>
+</ul>
+<a name="floorDivide(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>floorDivide</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.75">floorDivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>floor divide of a and b</dd></dl>
+</li>
+</ul>
+<a name="floorDivide(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>floorDivide</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.86">floorDivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>floor divide of a and b</dd></dl>
+</li>
+</ul>
+<a name="floorRemainder(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>floorRemainder</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.95">floorRemainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>floor remainder of a and b</dd></dl>
+</li>
+</ul>
+<a name="floorRemainder(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>floorRemainder</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.106">floorRemainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>floor remainder of a and b</dd></dl>
+</li>
+</ul>
+<a name="reciprocal(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reciprocal</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.120">reciprocal</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Find reciprocal from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>reciprocal dataset</dd></dl>
+</li>
+</ul>
+<a name="reciprocal(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reciprocal</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.132">reciprocal</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Find reciprocal from dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>reciprocal dataset</dd></dl>
+</li>
+</ul>
+<a name="abs(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>abs</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.143">abs</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">abs - absolute value of each element</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="abs(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>abs</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.155">abs</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">abs - absolute value of each element</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset</dd></dl>
+</li>
+</ul>
+<a name="conjugate(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>conjugate</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.411">conjugate</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a^*, complex conjugate of a</dd></dl>
+</li>
+</ul>
+<a name="conjugate(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>conjugate</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.421">conjugate</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a^*, complex conjugate of a</dd></dl>
+</li>
+</ul>
+<a name="hypot(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hypot</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.462">hypot</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - side of right-angled triangle</dd><dd><code>b</code> - side of right-angled triangle</dd>
+<dt><span class="strong">Returns:</span></dt><dd>hypotenuse of right-angled triangle: sqrt(a^2 + a^2)</dd></dl>
+</li>
+</ul>
+<a name="hypot(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hypot</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.475">hypot</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - side of right-angled triangle</dd><dd><code>b</code> - side of right-angled triangle</dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>hypotenuse of right-angled triangle: sqrt(a^2 + a^2)</dd></dl>
+</li>
+</ul>
+<a name="arctan2(java.lang.Object, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arctan2</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.744">arctan2</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - opposite side of right-angled triangle</dd><dd><code>b</code> - adjacent side of right-angled triangle</dd>
+<dt><span class="strong">Returns:</span></dt><dd>angle of triangle: atan(b/a)</dd></dl>
+</li>
+</ul>
+<a name="arctan2(java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>arctan2</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.757">arctan2</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - opposite side of right-angled triangle</dd><dd><code>b</code> - adjacent side of right-angled triangle</dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>angle of triangle: atan(b/a)</dd></dl>
+</li>
+</ul>
+<a name="angle(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>angle</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1025">angle</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</pre>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of angles in radians</dd></dl>
+</li>
+</ul>
+<a name="angle(java.lang.Object, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>angle</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1037">angle</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            boolean&nbsp;inDegrees)</pre>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>inDegrees</code> - if true then return angles in degrees else in radians</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of angles</dd></dl>
+</li>
+</ul>
+<a name="angle(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>angle</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1049">angle</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of angles in radians</dd></dl>
+</li>
+</ul>
+<a name="angle(java.lang.Object, boolean, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>angle</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1063">angle</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            boolean&nbsp;inDegrees,
+            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>inDegrees</code> - if true then return angles in degrees else in radians</dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset of angles</dd></dl>
+</li>
+</ul>
+<a name="phaseAsComplexNumber(java.lang.Object, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>phaseAsComplexNumber</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1337">phaseAsComplexNumber</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                           boolean&nbsp;keepZeros)</pre>
+<div class="block">Create a phase only dataset. NB it will contain NaNs if there are any
+ items with zero amplitude</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>keepZeros</code> - if true then zero items are returned as zero rather than NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>complex dataset where items have unit amplitude</dd></dl>
+</li>
+</ul>
+<a name="phaseAsComplexNumber(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>phaseAsComplexNumber</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1353">phaseAsComplexNumber</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                           <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                           boolean&nbsp;keepZeros)</pre>
+<div class="block">Create a phase only dataset. NB it will contain NaNs if there are any
+ items with zero amplitude</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd><dd><code>keepZeros</code> - if true then zero items are returned as zero rather than NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>complex dataset where items have unit amplitude</dd></dl>
+</li>
+</ul>
+<a name="add(java.util.Collection, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1439">add</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+          boolean&nbsp;requireClone)</pre>
+<div class="block">Adds all sets passed in together
+ 
+ The first IDataset must cast to Dataset
+ 
+ For memory efficiency sake if add(...) is called with a set of size one,
+ no clone is done, the original object is returned directly. Otherwise a
+ new data set is returned, the sum of those passed in.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sets</code> - </dd><dd><code>requireClone</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of collection</dd></dl>
+</li>
+</ul>
+<a name="multiply(java.util.Collection, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>multiply</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1464">multiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+               boolean&nbsp;requireClone)</pre>
+<div class="block">Multiplies all sets passed in together
+ 
+ The first IDataset must cast to Dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sets</code> - </dd><dd><code>requireClone</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>product of collection</dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IDataset, java.lang.Number, java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1497">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                  <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;x0,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;left,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</pre>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - input 1-D coordinate dataset (must be ordered)</dd><dd><code>d</code> - input 1-D dataset</dd><dd><code>x0</code> - coordinate values</dd><dd><code>left</code> - value to use when x0 lies left of domain. If null, then
+            interpolate to zero by using leftmost interval</dd><dd><code>right</code> - value to use when x0 lies right of domain. If null, then
+            interpolate to zero by using rightmost interval</dd>
+<dt><span class="strong">Returns:</span></dt><dd>interpolated values</dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1581">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                 double&nbsp;x0)</pre>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset. The dataset is
+ considered to have zero support outside its bounds. Thus points just
+ outside are interpolated from the boundary value to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>x0</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>interpolated value</dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1614">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                 double&nbsp;x0)</pre>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset with a mask. The
+ dataset is considered to have zero support outside its bounds. Thus
+ points just outside are interpolated from the boundary value to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>m</code> - mask dataset</dd><dd><code>x0</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>interpolated value</dd></dl>
+</li>
+</ul>
+<a name="interpolate(double[], org.eclipse.january.dataset.CompoundDataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1648">interpolate</a>(double[]&nbsp;values,
+               <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+               double&nbsp;x0)</pre>
+<div class="block">Linearly interpolate an array of values at a point in a compound 1D
+ dataset. The dataset is considered to have zero support outside its
+ bounds. Thus points just outside are interpolated from the boundary value
+ to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>values</code> - interpolated array</dd><dd><code>d</code> - input dataset</dd><dd><code>x0</code> - coordinate</dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1699">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                 double&nbsp;x0,
+                 double&nbsp;x1)</pre>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset. The dataset is
+ considered to have zero support outside its bounds. Thus points just
+ outside are interpolated from the boundary value to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>x0</code> - coordinate</dd><dd><code>x1</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>bilinear interpolation</dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1763">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                 double&nbsp;x0,
+                 double&nbsp;x1)</pre>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset with a mask. The
+ dataset is considered to have zero support outside its bounds. Thus
+ points just outside are interpolated from the boundary value to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>m</code> - mask dataset</dd><dd><code>x0</code> - coordinate</dd><dd><code>x1</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>bilinear interpolation</dd></dl>
+</li>
+</ul>
+<a name="interpolate(double[], org.eclipse.january.dataset.CompoundDataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1823">interpolate</a>(double[]&nbsp;values,
+               <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+               double&nbsp;x0,
+               double&nbsp;x1)</pre>
+<div class="block">Linearly interpolate an array of values at a point in a compound 2D
+ dataset. The dataset is considered to have zero support outside its
+ bounds. Thus points just outside are interpolated from the boundary value
+ to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>values</code> - bilinear interpolated array</dd><dd><code>d</code> - </dd><dd><code>x0</code> - </dd><dd><code>x1</code> - </dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, double...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1904">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                 double...&nbsp;x)</pre>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset. The dataset is
+ considered to have zero support outside its bounds. Thus points just
+ outside are interpolated from the boundary value to zero. The number of
+ coordinates must match the rank of the dataset.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>x</code> - coordinates</dd>
+<dt><span class="strong">Returns:</span></dt><dd>interpolated value</dd></dl>
+</li>
+</ul>
+<a name="interpolate(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, double...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.1922">interpolate</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                 double...&nbsp;x)</pre>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset with a mask. The
+ dataset is considered to have zero support outside its bounds. Thus
+ points just outside are interpolated from the boundary value to zero. The
+ number of coordinates must match the rank of the dataset.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>m</code> - mask dataset (can be null)</dd><dd><code>x</code> - coordinates</dd>
+<dt><span class="strong">Returns:</span></dt><dd>interpolated value</dd></dl>
+</li>
+</ul>
+<a name="interpolate(double[], org.eclipse.january.dataset.CompoundDataset, double...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>interpolate</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2018">interpolate</a>(double[]&nbsp;values,
+               <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+               double...&nbsp;x)</pre>
+<div class="block">Linearly interpolate an array of values at a point in a compound n-D
+ dataset. The dataset is considered to have zero support outside its
+ bounds. Thus points just outside are interpolated from the boundary value
+ to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>values</code> - linearly interpolated array</dd><dd><code>d</code> - </dd><dd><code>x</code> - </dd></dl>
+</li>
+</ul>
+<a name="getLinear(org.eclipse.january.dataset.IDataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinear</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2108">getLinear</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                          double&nbsp;x0)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)"><code>interpolate(Dataset, double)</code></a></i></div>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset. The dataset is
+ considered to have zero support outside its bounds. Thus points just
+ outside are interpolated from the boundary value to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>x0</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>interpolated value</dd></dl>
+</li>
+</ul>
+<a name="getLinear(double[], org.eclipse.january.dataset.CompoundDataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinear</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2126">getLinear</a>(double[]&nbsp;values,
+                        <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                        double&nbsp;x0)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)"><code>interpolate(double[], CompoundDataset, double)</code></a></i></div>
+<div class="block">Linearly interpolate a value at a point in a compound 1D dataset. The
+ dataset is considered to have zero support outside its bounds. Thus
+ points just outside are interpolated from the boundary value to zero.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>values</code> - interpolated array</dd><dd><code>d</code> - input dataset</dd><dd><code>x0</code> - coordinate</dd></dl>
+</li>
+</ul>
+<a name="getBilinear(org.eclipse.january.dataset.IDataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBilinear</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2143">getBilinear</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                            double&nbsp;x0,
+                            double&nbsp;x1)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>interpolate(Dataset, double, double)</code></a></i></div>
+<div class="block">Interpolated a value from 2D dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>x0</code> - coordinate</dd><dd><code>x1</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>bilinear interpolation</dd></dl>
+</li>
+</ul>
+<a name="getBilinear(org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.IDataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBilinear</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2162">getBilinear</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;m,
+                            double&nbsp;x0,
+                            double&nbsp;x1)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>interpolate(Dataset, Dataset, double, double)</code></a></i></div>
+<div class="block">Interpolated a value from 2D dataset with mask</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>d</code> - input dataset</dd><dd><code>m</code> - mask dataset</dd><dd><code>x0</code> - coordinate</dd><dd><code>x1</code> - coordinate</dd>
+<dt><span class="strong">Returns:</span></dt><dd>bilinear interpolation</dd></dl>
+</li>
+</ul>
+<a name="getBilinear(double[], org.eclipse.january.dataset.CompoundDataset, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBilinear</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2178">getBilinear</a>(double[]&nbsp;values,
+                          <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                          double&nbsp;x0,
+                          double&nbsp;x1)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use
+             <a href="../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)"><code>interpolate(double[], CompoundDataset, double, double)</code></a></i></div>
+<div class="block">Interpolated a value from 2D compound dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>values</code> - bilinear interpolated array</dd><dd><code>d</code> - </dd><dd><code>x0</code> - </dd><dd><code>x1</code> - </dd></dl>
+</li>
+</ul>
+<a name="difference(org.eclipse.january.dataset.Dataset, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>difference</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2632">difference</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 int&nbsp;n,
+                 int&nbsp;axis)</pre>
+<div class="block">Discrete difference of dataset along axis using finite difference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>n</code> - order of difference</dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference</dd></dl>
+</li>
+</ul>
+<a name="derivative(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>derivative</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2731">derivative</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                 int&nbsp;n)</pre>
+<div class="block">Calculates the derivative of a line described by two datasets (x,y) given
+ a spread of n either side of the point</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>x</code> - The x values of the function to take the derivative of.</dd><dd><code>y</code> - The y values of the function to take the derivative of.</dd><dd><code>n</code> - The spread the derivative is calculated from, i.e. the
+            smoothing, the higher the value, the more smoothing occurs.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>A dataset which contains all the derivative point for point.</dd></dl>
+</li>
+</ul>
+<a name="centralDifference(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>centralDifference</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.2808">centralDifference</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;axis)</pre>
+<div class="block">Discrete difference of dataset along axis using finite central difference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference</dd></dl>
+</li>
+</ul>
+<a name="gradient(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>gradient</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Maths.html#line.3085">gradient</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;x)</pre>
+<div class="block">Calculate gradient (or partial derivatives) by central difference</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>y</code> - </dd><dd><code>x</code> - one or more datasets for dependent variables</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a list of datasets (one for each dimension in y)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Maths.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Maths.html" target="_top">Frames</a></li>
+<li><a href="Maths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/NullIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/NullIterator.html
new file mode 100644
index 0000000..69146f9
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/NullIterator.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="NullIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NullIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/NullIterator.html" target="_top">Frames</a></li>
+<li><a href="NullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class NullIterator" class="title">Class NullIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.SliceIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.NullIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.12">NullIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/NullIterator.html#NullIterator(int[],%20int[])">NullIterator</a></strong>(int[]&nbsp;shape,
+                        int[]&nbsp;sshape)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/NullIterator.html#getPos()">getPos</a></strong>()</code>
+<div class="block">Returns the current position of the iterator.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/NullIterator.html#hasNext()">hasNext</a></strong>()</code>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/NullIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.SliceIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart()">getStart</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep()">getStep</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart(int...)">setStart</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="NullIterator(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NullIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.17">NullIterator</a>(int[]&nbsp;shape,
+            int[]&nbsp;sshape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - shape of dataset</dd><dd><code>sshape</code> - shape of slice</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.23">hasNext</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext()">SliceIterator</a></code></strong></div>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Returns  if the iteration has more Slice, <code>false</code> in
+         the other case</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.28">getPos</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos()">SliceIterator</a></code></strong></div>
+<div class="block">Returns the current position of the iterator.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Iterator current position</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/NullIterator.html#line.33">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset()">SliceIterator</a></code></strong></div>
+<div class="block">Reset the Iterator to the first Slice.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NullIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/NullIterator.html" target="_top">Frames</a></li>
+<li><a href="NullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ObjectDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ObjectDataset.html
new file mode 100644
index 0000000..d91ef90
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ObjectDataset.html
@@ -0,0 +1,1372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:27 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ObjectDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ObjectDataset.html" target="_top">Frames</a></li>
+<li><a href="ObjectDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.ObjectDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ObjectDataset" class="title">Class ObjectDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ObjectDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ObjectDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.20">ObjectDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></pre>
+<div class="block">Extend dataset for objects</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.ObjectDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.ObjectDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html#residual(java.lang.Object)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ObjectDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get()">get</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get(int...)">get</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get(int)">get</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get(int,%20int)">get</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setAbs(int,%20java.lang.Object)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#sort(java.lang.Integer)">sort</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.65">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.73">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.78">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.111">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.116">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.121">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementLongAbs(int)">getElementLongAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.126">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble()">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.131">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.136">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.141">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int...)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.146">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat()">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.151">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.156">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.161">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int...)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.166">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong()">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.171">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.176">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int,%20int)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.181">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int...)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.186">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt()">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.191">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.196">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int,%20int)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.201">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int...)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.206">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort()">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.211">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.216">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int,%20int)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.221">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int...)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.226">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte()">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.231">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.236">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int,%20int)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.241">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int...)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.246">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean()">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.251">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.256">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.261">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.266">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.272">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#minPos(boolean...)">minPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#minPos(boolean...)">minPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.277">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#maxPos(boolean...)">maxPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.282">containsInfs</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsInfs()">containsInfs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.287">containsNans</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsNans()">containsNans</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.292">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.297">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.302">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.307">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.312">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.317">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ifloor()">ifloor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.322">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDataset.html#line.327">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ObjectDataset.html" target="_top">Frames</a></li>
+<li><a href="ObjectDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.ObjectDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ObjectDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/ObjectDatasetBase.html
new file mode 100644
index 0000000..c0a41b4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ObjectDatasetBase.html
@@ -0,0 +1,1977 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ObjectDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ObjectDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="ObjectDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ObjectDatasetBase" class="title">Class ObjectDatasetBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ObjectDatasetBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.29">ObjectDatasetBase</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.ObjectDatasetBase">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setAbs(int,%20java.lang.Object)">setAbs</a></strong>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int...)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItem(java.lang.Object,%20int,%20int)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] <a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.33">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.36">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.40">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.55">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.157">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.179">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.184">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.225">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.240">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.245">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.252">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.267">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.272">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.277">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.282">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.287">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.292">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.306">setAbs</a>(int&nbsp;index,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.312">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.319">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.331">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.339">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.348">get</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.356">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.361">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.366">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.371">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.376">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.381">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.386">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.391">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.396">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.401">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.406">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.411">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.416">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.421">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.426">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.431">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.436">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.441">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.446">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.451">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.456">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.461">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.466">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.471">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.476">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.481">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.486">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.491">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.496">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.501">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.506">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.511">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.516">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.521">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.526">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.531">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.536">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.546">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.556">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.567">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.577">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.582">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.587">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.592">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.597">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.606">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.630">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.657">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.674">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.686">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.698">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.726">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.753">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.792">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                         <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.832">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.851">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.882">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.898">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.914">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.919">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.924">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.929">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.934">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.939">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.944">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.949">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.954">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.959">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ObjectDatasetBase.html#line.964">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ObjectDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="ObjectDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Addition.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Addition.html
new file mode 100644
index 0000000..c2db128
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Addition.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Addition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Addition (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Addition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Addition.html" target="_top">Frames</a></li>
+<li><a href="Operations.Addition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Addition" class="title">Class Operations.Addition</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Addition</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.115">Operations.Addition</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Addition with boolean or</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#Operations.Addition()">Operations.Addition</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Addition()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Addition</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.115">Operations.Addition</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.118">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.123">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.128">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.133">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.139">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Addition.html#line.144">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Addition.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Addition.html" target="_top">Frames</a></li>
+<li><a href="Operations.Addition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Division.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Division.html
new file mode 100644
index 0000000..c91a5f7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Division.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Division (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Division (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Division.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Division.html" target="_top">Frames</a></li>
+<li><a href="Operations.Division.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Division" class="title">Class Operations.Division</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Division</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a>, <a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.226">Operations.Division</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Division with boolean and of negated second operand</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#Operations.Division()">Operations.Division</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Division()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Division</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.226">Operations.Division</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.229">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.234">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.239">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.244">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.267">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Division.html#line.272">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Division.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Division.html" target="_top">Frames</a></li>
+<li><a href="Operations.Division.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..7142939
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.DivisionTowardsFloor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.DivisionTowardsFloor (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.DivisionTowardsFloor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionTowardsFloor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.DivisionTowardsFloor" class="title">Class Operations.DivisionTowardsFloor</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.Division</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.DivisionTowardsFloor</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.321">Operations.DivisionTowardsFloor</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></pre>
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#Operations.DivisionTowardsFloor()">Operations.DivisionTowardsFloor</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.Division">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#booleanOperate(long,%20long)">booleanOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#doubleOperate(double,%20double)">doubleOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.DivisionTowardsFloor()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.DivisionTowardsFloor</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#line.321">Operations.DivisionTowardsFloor</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html#line.324">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.DivisionTowardsFloor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionTowardsFloor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.DivisionWithZero.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..67788f6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.DivisionWithZero.html
@@ -0,0 +1,330 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.DivisionWithZero (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.DivisionWithZero (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.DivisionWithZero.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.DivisionWithZero.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionWithZero.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.DivisionWithZero" class="title">Class Operations.DivisionWithZero</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.Division</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.DivisionWithZero</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.281">Operations.DivisionWithZero</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></pre>
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html#Operations.DivisionWithZero()">Operations.DivisionWithZero</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.Division">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#booleanOperate(long,%20long)">booleanOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#longOperate(long,%20long)">longOperate</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/Operations.Division.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.DivisionWithZero()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.DivisionWithZero</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html#line.281">Operations.DivisionWithZero</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html#line.284">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html#line.289">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.DivisionWithZero.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.DivisionWithZero.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionWithZero.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Exponentiation.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Exponentiation.html
new file mode 100644
index 0000000..6e739a5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Exponentiation.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Exponentiation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Exponentiation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Exponentiation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Exponentiation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Exponentiation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Exponentiation" class="title">Class Operations.Exponentiation</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BinaryOperation.Stub</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Exponentiation</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.376">Operations.Exponentiation</a>
+extends <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></pre>
+<div class="block">Exponentiation with boolean and</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#Operations.Exponentiation()">Operations.Exponentiation</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>
+<div class="block">override this</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>
+<div class="block">override this</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.BinaryOperation.Stub">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#booleanOperate(long,%20long)">booleanOperate</a>, <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#longOperate(long,%20long)">longOperate</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Exponentiation()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Exponentiation</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Exponentiation.html#line.376">Operations.Exponentiation</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Exponentiation.html#line.379">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Exponentiation.html#line.384">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)">BinaryOperation.Stub</a></code></strong></div>
+<div class="block">override this</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Exponentiation.html#line.392">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)">BinaryOperation.Stub</a></code></strong></div>
+<div class="block">override this</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Exponentiation.html#line.397">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Exponentiation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Exponentiation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Exponentiation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Maximum.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Maximum.html
new file mode 100644
index 0000000..abdc128
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Maximum.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Maximum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Maximum (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Maximum.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Maximum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Maximum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Maximum" class="title">Class Operations.Maximum</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Maximum</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.405">Operations.Maximum</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Select maximum of a and b</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#Operations.Maximum()">Operations.Maximum</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Maximum()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Maximum</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.405">Operations.Maximum</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.407">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.412">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.417">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.422">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.427">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Maximum.html#line.432">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Maximum.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Maximum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Maximum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Minimum.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Minimum.html
new file mode 100644
index 0000000..1094e99
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Minimum.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Minimum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Minimum (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Minimum.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Minimum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Minimum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Minimum" class="title">Class Operations.Minimum</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Minimum</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.440">Operations.Minimum</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Select minimum of a and b</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#Operations.Minimum()">Operations.Minimum</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Minimum()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Minimum</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.440">Operations.Minimum</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.442">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.447">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.452">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.457">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.462">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Minimum.html#line.467">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Minimum.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Minimum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Minimum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Multiplication.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Multiplication.html
new file mode 100644
index 0000000..c1e029f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Multiplication.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Multiplication (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Multiplication (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Multiplication.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Multiplication.html" target="_top">Frames</a></li>
+<li><a href="Operations.Multiplication.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Multiplication" class="title">Class Operations.Multiplication</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Multiplication</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.189">Operations.Multiplication</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Multiplication with boolean and</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#Operations.Multiplication()">Operations.Multiplication</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Multiplication()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Multiplication</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.189">Operations.Multiplication</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.192">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.197">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.202">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.207">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.213">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Multiplication.html#line.218">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Multiplication.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Multiplication.html" target="_top">Frames</a></li>
+<li><a href="Operations.Multiplication.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Negation.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Negation.html
new file mode 100644
index 0000000..18c51d6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Negation.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Negation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Negation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Negation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Negation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Negation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Negation" class="title">Class Operations.Negation</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Negation</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a>, <a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.78">Operations.Negation</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></pre>
+<div class="block">Negation with boolean not</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.UnaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#Operations.Negation()">Operations.Negation</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#booleanOperate(long)">booleanOperate</a></strong>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#complexOperate(double[],%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#doubleOperate(double)">doubleOperate</a></strong>(double&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#longOperate(long)">longOperate</a></strong>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html#toString(java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Negation()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Negation</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.78">Operations.Negation</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.81">booleanOperate</a>(long&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#booleanOperate(long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.86">longOperate</a>(long&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#longOperate(long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.91">doubleOperate</a>(double&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#doubleOperate(double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)a</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.96">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#complexOperate(double[],%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds op(ra, ia)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.102">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#toString(java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Negation.html#line.107">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Negation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Negation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Negation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Remainder.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Remainder.html
new file mode 100644
index 0000000..f0762b3
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Remainder.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Remainder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Remainder (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Remainder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Remainder.html" target="_top">Frames</a></li>
+<li><a href="Operations.Remainder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Remainder" class="title">Class Operations.Remainder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Remainder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.340">Operations.Remainder</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Remainder</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#Operations.Remainder()">Operations.Remainder</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Remainder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Remainder</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.340">Operations.Remainder</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.343">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.348">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.353">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.358">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.363">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Remainder.html#line.368">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Remainder.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Remainder.html" target="_top">Frames</a></li>
+<li><a href="Operations.Remainder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Subtraction.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Subtraction.html
new file mode 100644
index 0000000..97d9479
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.Subtraction.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.Subtraction (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.Subtraction (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Subtraction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Subtraction.html" target="_top">Frames</a></li>
+<li><a href="Operations.Subtraction.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.Subtraction" class="title">Class Operations.Subtraction</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.Subtraction</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.152">Operations.Subtraction</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Subtraction with boolean or of negated second operand</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#Operations.Subtraction()">Operations.Subtraction</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.Subtraction()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.Subtraction</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.152">Operations.Subtraction</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.155">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.160">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.165">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.170">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.176">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.Subtraction.html#line.181">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.Subtraction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.Subtraction.html" target="_top">Frames</a></li>
+<li><a href="Operations.Subtraction.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseBase.html
new file mode 100644
index 0000000..f73cfbc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseBase.html
@@ -0,0 +1,403 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.UseBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseBase.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.UseBase" class="title">Class Operations.UseBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.UseBase</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.475">Operations.UseBase</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></pre>
+<div class="block">Use given value if a > b else use a</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="br">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>br</h4>
+<pre>protected&nbsp;boolean <a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.476">br</a></pre>
+</li>
+</ul>
+<a name="lr">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lr</h4>
+<pre>protected&nbsp;long <a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.477">lr</a></pre>
+</li>
+</ul>
+<a name="dr">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>dr</h4>
+<pre>protected&nbsp;double <a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.478">dr</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.505">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.510">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.515">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.520">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseBase.html#line.524">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#toString(java.lang.String,%20java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseBase.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfEqualTo.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..aea14dc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.UseIfEqualTo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfEqualTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.UseIfEqualTo" class="title">Class Operations.UseIfEqualTo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.UseBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.UseIfEqualTo</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.732">Operations.UseIfEqualTo</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></pre>
+<div class="block">Use given value if a == b else use a</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#Operations.UseIfEqualTo(boolean,%20long,%20double,%20double)">Operations.UseIfEqualTo</a></strong>(boolean&nbsp;br,
+                                              long&nbsp;lr,
+                                              double&nbsp;dr,
+                                              double&nbsp;di)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#Operations.UseIfEqualTo(org.apache.commons.math3.complex.Complex)">Operations.UseIfEqualTo</a></strong>(<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;z)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#Operations.UseIfEqualTo(java.lang.Number)">Operations.UseIfEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.UseIfEqualTo(boolean, long, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Operations.UseIfEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.745">Operations.UseIfEqualTo</a>(boolean&nbsp;br,
+                       long&nbsp;lr,
+                       double&nbsp;dr,
+                       double&nbsp;di)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>br</code> - given value as boolean</dd><dd><code>lr</code> - given value as long</dd><dd><code>dr</code> - given value as double</dd><dd><code>di</code> - given value for imaginary part as double</dd></dl>
+</li>
+</ul>
+<a name="Operations.UseIfEqualTo(java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Operations.UseIfEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.754">Operations.UseIfEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - given value as Number</dd></dl>
+</li>
+</ul>
+<a name="Operations.UseIfEqualTo(org.apache.commons.math3.complex.Complex)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.UseIfEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.763">Operations.UseIfEqualTo</a>(<a href="https://commons.apache.org/proper/commons-math/javadocs/api-3.5/org/apache/commons/math3/complex/Complex.html?is-external=true" title="class or interface in org.apache.commons.math3.complex">Complex</a>&nbsp;z)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>z</code> - given value as Complex</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.769">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.774">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.779">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.784">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html#line.795">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfEqualTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..d7d2744
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfGreaterThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.UseIfGreaterThan (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfGreaterThan.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.UseIfGreaterThan" class="title">Class Operations.UseIfGreaterThan</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.UseBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.UseIfGreaterThan</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.532">Operations.UseIfGreaterThan</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></pre>
+<div class="block">Use given value if a > b else use a</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#Operations.UseIfGreaterThan(boolean,%20long,%20double)">Operations.UseIfGreaterThan</a></strong>(boolean&nbsp;br,
+                                                      long&nbsp;lr,
+                                                      double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#Operations.UseIfGreaterThan(java.lang.Number)">Operations.UseIfGreaterThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.UseIfGreaterThan(boolean, long, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Operations.UseIfGreaterThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.541">Operations.UseIfGreaterThan</a>(boolean&nbsp;br,
+                           long&nbsp;lr,
+                           double&nbsp;dr)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>br</code> - given value as boolean</dd><dd><code>lr</code> - given value as long</dd><dd><code>dr</code> - given value as double</dd></dl>
+</li>
+</ul>
+<a name="Operations.UseIfGreaterThan(java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.UseIfGreaterThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.549">Operations.UseIfGreaterThan</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - given value as Number</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.554">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.559">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.564">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.569">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html#line.574">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfGreaterThan.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..26631ab
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfGreaterThanOrEqualTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.UseIfGreaterThanOrEqualTo" class="title">Class Operations.UseIfGreaterThanOrEqualTo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.UseBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.UseIfGreaterThanOrEqualTo</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.582">Operations.UseIfGreaterThanOrEqualTo</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></pre>
+<div class="block">Use given value if a >= b else use a</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#Operations.UseIfGreaterThanOrEqualTo(boolean,%20long,%20double)">Operations.UseIfGreaterThanOrEqualTo</a></strong>(boolean&nbsp;br,
+                                                                        long&nbsp;lr,
+                                                                        double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#Operations.UseIfGreaterThanOrEqualTo(java.lang.Number)">Operations.UseIfGreaterThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.UseIfGreaterThanOrEqualTo(boolean, long, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Operations.UseIfGreaterThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.591">Operations.UseIfGreaterThanOrEqualTo</a>(boolean&nbsp;br,
+                                    long&nbsp;lr,
+                                    double&nbsp;dr)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>br</code> - given value as boolean</dd><dd><code>lr</code> - given value as long</dd><dd><code>dr</code> - given value as double</dd></dl>
+</li>
+</ul>
+<a name="Operations.UseIfGreaterThanOrEqualTo(java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.UseIfGreaterThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.599">Operations.UseIfGreaterThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - given value as Number</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.604">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.609">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.614">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.619">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html#line.624">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfGreaterThanOrEqualTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfLessThan.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..2bfe621
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfLessThan.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfLessThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.UseIfLessThan (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfLessThan.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfLessThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.UseIfLessThan" class="title">Class Operations.UseIfLessThan</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.UseBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.UseIfLessThan</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.632">Operations.UseIfLessThan</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></pre>
+<div class="block">Use given value if a < b else use a</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#Operations.UseIfLessThan(boolean,%20long,%20double)">Operations.UseIfLessThan</a></strong>(boolean&nbsp;br,
+                                                long&nbsp;lr,
+                                                double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#Operations.UseIfLessThan(java.lang.Number)">Operations.UseIfLessThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.UseIfLessThan(boolean, long, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Operations.UseIfLessThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.641">Operations.UseIfLessThan</a>(boolean&nbsp;br,
+                        long&nbsp;lr,
+                        double&nbsp;dr)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>br</code> - given value as boolean</dd><dd><code>lr</code> - given value as long</dd><dd><code>dr</code> - given value as double</dd></dl>
+</li>
+</ul>
+<a name="Operations.UseIfLessThan(java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.UseIfLessThan</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.649">Operations.UseIfLessThan</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - given value as Number</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.654">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.659">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.664">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.669">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html#line.674">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfLessThan.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfLessThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..eb1d1e4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfLessThanOrEqualTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations.UseIfLessThanOrEqualTo" class="title">Class Operations.UseIfLessThanOrEqualTo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Operations.UseBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations.UseIfLessThanOrEqualTo</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>, <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.682">Operations.UseIfLessThanOrEqualTo</a>
+extends <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></pre>
+<div class="block">Use given value if a <= b else use a</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.BinaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#br">br</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#dr">dr</a>, <a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#lr">lr</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#Operations.UseIfLessThanOrEqualTo(boolean,%20long,%20double)">Operations.UseIfLessThanOrEqualTo</a></strong>(boolean&nbsp;br,
+                                                                  long&nbsp;lr,
+                                                                  double&nbsp;dr)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#Operations.UseIfLessThanOrEqualTo(java.lang.Number)">Operations.UseIfLessThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#booleanOperate(long,%20long)">booleanOperate</a></strong>(long&nbsp;a,
+                            long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia,
+                            double&nbsp;rb,
+                            double&nbsp;ib)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#doubleOperate(double,%20double)">doubleOperate</a></strong>(double&nbsp;a,
+                          double&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#longOperate(long,%20long)">longOperate</a></strong>(long&nbsp;a,
+                      long&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#toString()">toString</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#toString(java.lang.String,%20java.lang.String)">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations.UseIfLessThanOrEqualTo(boolean, long, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Operations.UseIfLessThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.691">Operations.UseIfLessThanOrEqualTo</a>(boolean&nbsp;br,
+                                 long&nbsp;lr,
+                                 double&nbsp;dr)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>br</code> - given value as boolean</dd><dd><code>lr</code> - given value as long</dd><dd><code>dr</code> - given value as double</dd></dl>
+</li>
+</ul>
+<a name="Operations.UseIfLessThanOrEqualTo(java.lang.Number)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations.UseIfLessThanOrEqualTo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.699">Operations.UseIfLessThanOrEqualTo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;r)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>r</code> - given value as Number</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.704">booleanOperate</a>(long&nbsp;a,
+                     long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#booleanOperate(long,%20long)">booleanOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long, long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.709">longOperate</a>(long&nbsp;a,
+               long&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#longOperate(long,%20long)">longOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.714">doubleOperate</a>(double&nbsp;a,
+                   double&nbsp;b)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#doubleOperate(double,%20double)">doubleOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.719">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia,
+                  double&nbsp;rb,
+                  double&nbsp;ib)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html#complexOperate(double[],%20double,%20double,%20double,%20double)">complexOperate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds (ra, ia) op (rb, ib)</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html#line.724">toString</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.UseIfLessThanOrEqualTo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.Operations.UseBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Operations.html b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.html
new file mode 100644
index 0000000..b733889
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Operations.html
@@ -0,0 +1,474 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Operations (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Operations (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.html" target="_top">Frames</a></li>
+<li><a href="Operations.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Operations" class="title">Class Operations</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Operations</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.19">Operations</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></strong></code>
+<div class="block">Addition with boolean or</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></strong></code>
+<div class="block">Division with boolean and of negated second operand</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></strong></code>
+<div class="block">Exponentiation with boolean and</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></strong></code>
+<div class="block">Select maximum of a and b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></strong></code>
+<div class="block">Select minimum of a and b</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></strong></code>
+<div class="block">Multiplication with boolean and</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></strong></code>
+<div class="block">Negation with boolean not</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></strong></code>
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></strong></code>
+<div class="block">Subtraction with boolean or of negated second operand</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></strong></code>
+<div class="block">Use given value if a == b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a >= b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></strong></code>
+<div class="block">Use given value if a < b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a <= b else use a</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.html#Operations()">Operations</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.html#bracketIfNecessary(java.lang.String)">bracketIfNecessary</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</code>
+<div class="block">This function returns the name of the dataset, bracketed if it already
+ includes some mathematical symbol</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.html#createBinaryOperationName(java.lang.String,%20java.lang.String,%20java.lang.String)">createBinaryOperationName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;operator,
+                                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</code>
+<div class="block">Create a string for a binary operator and its operands</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.html#createFunctionName(java.lang.String,%20java.lang.String...)">createFunctionName</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;function,
+                                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;arguments)</code>
+<div class="block">Create a string for a function and its arguments</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.BinaryOperation,%20java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.UnaryOperation,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Operations()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Operations</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.19">Operations</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="bracketIfNecessary(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bracketIfNecessary</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.28">bracketIfNecessary</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</pre>
+<div class="block">This function returns the name of the dataset, bracketed if it already
+ includes some mathematical symbol</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the bracketed if necessary method name</dd></dl>
+</li>
+</ul>
+<a name="createBinaryOperationName(java.lang.String, java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBinaryOperationName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.50">createBinaryOperationName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;operator,
+                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a,
+                               <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;b)</pre>
+<div class="block">Create a string for a binary operator and its operands</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>operator</code> - </dd><dd><code>a</code> - 1st operand name</dd><dd><code>b</code> - 2nd operand name</dd>
+<dt><span class="strong">Returns:</span></dt><dd>name of operation</dd></dl>
+</li>
+</ul>
+<a name="createFunctionName(java.lang.String, java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFunctionName</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.62">createFunctionName</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;function,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;arguments)</pre>
+<div class="block">Create a string for a function and its arguments</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>function</code> - </dd><dd><code>arguments</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>name of function</dd></dl>
+</li>
+</ul>
+<a name="operate(org.eclipse.january.dataset.UnaryOperation, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>operate</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.817">operate</a>(<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Operate on a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>op</code> - unary operator</dd><dd><code>a</code> - dataset</dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a), operation on a</dd></dl>
+</li>
+</ul>
+<a name="operate(org.eclipse.january.dataset.BinaryOperation, java.lang.Object, java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>operate</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Operations.html#line.1197">operate</a>(<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<div class="block">Operate on a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>op</code> - binary operator</dd><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>o</code> - output can be null - in which case, a new dataset is created</dd>
+<dt><span class="strong">Returns:</span></dt><dd>a op b, operation on a and b</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Operations.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Operations.html" target="_top">Frames</a></li>
+<li><a href="Operations.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Outliers.html b/apidocs/2.1.1/org/eclipse/january/dataset/Outliers.html
new file mode 100644
index 0000000..7557ec1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Outliers.html
@@ -0,0 +1,373 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Outliers (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Outliers (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Outliers.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Outliers.html" target="_top">Frames</a></li>
+<li><a href="Outliers.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Outliers" class="title">Class Outliers</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Outliers</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.24">Outliers</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Estimators of the scale of a Dataset.
+ <p>
+ A class of static methods to produce estimations of the scale of variation within a Dataset.
+ The available estimators are:
+ <ul>
+ <li> Median Absolute Deviation </li>
+ <li> S<sub>n</sub> of Croux and Rousseeuw (1992).</li>
+ </ul> 
+ <p>
+ Croux, C. and P. J. Rousseeuw, "Time-efficient algorithms for two highly robust estimators of scale", Computational Statistics, Volume 1, eds. Y. Dodge and J.Whittaker, Physica-Verlag, Heidelberg, pp411--428 (1992).</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#Outliers()">Outliers</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#highMed(org.eclipse.january.dataset.Dataset)">highMed</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the himed</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#lowMed(org.eclipse.january.dataset.Dataset)">lowMed</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the lomed</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#medianAbsoluteDeviation(org.eclipse.january.dataset.Dataset)">medianAbsoluteDeviation</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the Median Absolute Deviation (MAD) and the median.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#medianOFTwoPrimitiveArrays(double[],%20double[])">medianOFTwoPrimitiveArrays</a></strong>(double[]&nbsp;a,
+                                                    double[]&nbsp;b)</code>
+<div class="block">Calculates the overall median of two double arrays</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#snFast(org.eclipse.january.dataset.Dataset)">snFast</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Outliers.html#snNaive(org.eclipse.january.dataset.Dataset)">snNaive</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Outliers()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Outliers</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.24">Outliers</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="medianAbsoluteDeviation(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>medianAbsoluteDeviation</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.35">medianAbsoluteDeviation</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</pre>
+<div class="block">Returns the Median Absolute Deviation (MAD) and the median.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - The data for which the median and the MAD are to be calculated</dd>
+<dt><span class="strong">Returns:</span></dt><dd>A two-element array of doubles, consisting of the MAD and the median of the data</dd></dl>
+</li>
+</ul>
+<a name="snNaive(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snNaive</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.54">snNaive</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</pre>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.
+ <p>
+ This is the simple O(n²) version of the calculation algorithm.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - The data for which the estimator is to be calculated.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The value of the Sn estimator for the data</dd></dl>
+</li>
+</ul>
+<a name="snFast(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snFast</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.86">snFast</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</pre>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.
+ <p>
+ This is the complex O(nlog n) version of the calculation algorithm.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - The data for which the estimator is to be calculated.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The value of the Sn estimator for the data</dd></dl>
+</li>
+</ul>
+<a name="lowMed(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lowMed</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.117">lowMed</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</pre>
+<div class="block">Returns the lomed
+ <p>
+ Returns the lomed (low median) of a sorted Dataset.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - A sorted Dataset for which the low median is to be calculated.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The value of the lomed of the data</dd></dl>
+</li>
+</ul>
+<a name="highMed(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>highMed</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.130">highMed</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</pre>
+<div class="block">Returns the himed
+ <p>
+ Returns the himed (high median) of a sorted Dataset.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - A sorted Dataset for which the low median is to be calculated.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The value of the himed of the data</dd></dl>
+</li>
+</ul>
+<a name="medianOFTwoPrimitiveArrays(double[], double[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>medianOFTwoPrimitiveArrays</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Outliers.html#line.141">medianOFTwoPrimitiveArrays</a>(double[]&nbsp;a,
+                                double[]&nbsp;b)</pre>
+<div class="block">Calculates the overall median of two double arrays</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - the two arrays for which the overall median is desired.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the overall median of the two arrays</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Outliers.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Outliers.html" target="_top">Frames</a></li>
+<li><a href="Outliers.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/PositionIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/PositionIterator.html
new file mode 100644
index 0000000..1674fe5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/PositionIterator.html
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PositionIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="PositionIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PositionIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/PositionIterator.html" target="_top">Frames</a></li>
+<li><a href="PositionIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class PositionIterator" class="title">Class PositionIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.PositionIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.29">PositionIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block"><p>Class to provide iteration through a dataset</p>
+ <p>Instantiate an iterator and use it in a while loop:
+ <pre>
+ Dataset ds = DatasetFactory.createLinearSpace(DoubleDataset.class, 0, 10, 0.25);
+ PositionIterator iter = ds.getPositionIterator();
+ int[] pos = iter.getPos()
+
+ while (iter.hasNext()) {
+     ds.set(1.2, pos);
+ }
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[])">PositionIterator</a></strong>(int[]&nbsp;shape)</code>
+<div class="block">Constructor for an iterator over elements of a dataset that are within
+ the shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20int...)">PositionIterator</a></strong>(int[]&nbsp;shape,
+                                int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20int[],%20int[],%20int[],%20int[])">PositionIterator</a></strong>(int[]&nbsp;shape,
+                                int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step,
+                                int[]&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20org.eclipse.january.dataset.Slice[],%20int[])">PositionIterator</a></strong>(int[]&nbsp;shape,
+                                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                                int[]&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int,%20int[])">PositionIterator</a></strong>(int&nbsp;offset,
+                                int[]&nbsp;shape)</code>
+<div class="block">Constructor for an iterator over a single item broadcasted to given shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int,%20org.eclipse.january.dataset.SliceND,%20int...)">PositionIterator</a></strong>(int&nbsp;offset,
+                                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                                int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(org.eclipse.january.dataset.SliceND,%20int...)">PositionIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                                int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getOmit()">getOmit</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#getStop()">getStop</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/PositionIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="PositionIterator(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.52">PositionIterator</a>(int[]&nbsp;shape)</pre>
+<div class="block">Constructor for an iterator over elements of a dataset that are within
+ the shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd></dl>
+</li>
+</ul>
+<a name="PositionIterator(int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.62">PositionIterator</a>(int&nbsp;offset,
+                int[]&nbsp;shape)</pre>
+<div class="block">Constructor for an iterator over a single item broadcasted to given shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>offset</code> - offset to single item</dd><dd><code>shape</code> - </dd></dl>
+</li>
+</ul>
+<a name="PositionIterator(int[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.71">PositionIterator</a>(int[]&nbsp;shape,
+                int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>axes</code> - missing axes, can be null for full dataset</dd></dl>
+</li>
+</ul>
+<a name="PositionIterator(int[], org.eclipse.january.dataset.Slice[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.81">PositionIterator</a>(int[]&nbsp;shape,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                int[]&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>slice</code> - </dd><dd><code>axes</code> - missing axes</dd></dl>
+</li>
+</ul>
+<a name="PositionIterator(int[], int[], int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.93">PositionIterator</a>(int[]&nbsp;shape,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step,
+                int[]&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>start</code> - </dd><dd><code>stop</code> - </dd><dd><code>step</code> - </dd><dd><code>axes</code> - missing axes</dd></dl>
+</li>
+</ul>
+<a name="PositionIterator(org.eclipse.january.dataset.SliceND, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.102">PositionIterator</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd><dd><code>axes</code> - missing axes</dd></dl>
+</li>
+</ul>
+<a name="PositionIterator(int, org.eclipse.january.dataset.SliceND, int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PositionIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.113">PositionIterator</a>(int&nbsp;offset,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>offset</code> - offset to start with</dd><dd><code>slice</code> - </dd><dd><code>axes</code> - missing axes</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.149">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.173">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="getOmit()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOmit</h4>
+<pre>public&nbsp;boolean[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.180">getOmit</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>omit array - array where true means miss out</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.185">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.221">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+<a name="getStop()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStop</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/PositionIterator.html#line.225">getStop</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PositionIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/PositionIterator.html" target="_top">Frames</a></li>
+<li><a href="PositionIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/RGBDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/RGBDataset.html
new file mode 100644
index 0000000..6df3318
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/RGBDataset.html
@@ -0,0 +1,1256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RGBDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="RGBDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RGBDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/RGBDataset.html" target="_top">Frames</a></li>
+<li><a href="RGBDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.CompoundShortDataset">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class RGBDataset" class="title">Class RGBDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundShortDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.RGBDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.20">RGBDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a>
+implements <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.RGBDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.CompoundShortDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#isize">isize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset()">RGBDataset</a></strong>()</code>
+<div class="block">Create a null dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(byte[],%20byte[],%20byte[],%20int...)">RGBDataset</a></strong>(byte[]&nbsp;redData,
+                    byte[]&nbsp;greenData,
+                    byte[]&nbsp;blueData,
+                    int...&nbsp;shape)</code>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.Dataset)">RGBDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;grey)</code>
+<div class="block">Create a dataset using given grey data</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">RGBDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;red,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;green,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;blue)</code>
+<div class="block">Create a dataset using given colour data (colour components are given separately)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(int...)">RGBDataset</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(int[],%20int[],%20int[],%20int...)">RGBDataset</a></strong>(int[]&nbsp;redData,
+                    int[]&nbsp;greenData,
+                    int[]&nbsp;blueData,
+                    int...&nbsp;shape)</code>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.RGBDataset)">RGBDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;dataset)</code>
+<div class="block">Copy a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(short[],%20int...)">RGBDataset</a></strong>(short[]&nbsp;data,
+                    int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(short[],%20short[],%20short[],%20int...)">RGBDataset</a></strong>(short[]&nbsp;redData,
+                    short[]&nbsp;greenData,
+                    short[]&nbsp;blueData,
+                    int...&nbsp;shape)</code>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(int)">createBlueDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createBlueDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(T)">createBlueDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Extract blue colour channel</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset)">createFromCompoundDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a)</code>
+<div class="block">Create a RGB dataset from a compound dataset (no normalisation performed)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSL(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSL</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;lightness)</code>
+<div class="block">Create a RGB dataset from hue, saturation and lightness dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSV(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSV</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;value)</code>
+<div class="block">Create a RGB dataset from hue, saturation and value dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createFromObject(java.lang.Object)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a RGB dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(int)">createGreenDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createGreenDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(T)">createGreenDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Extract green colour channel</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(double,%20double,%20double,%20int)">createGreyDataset</a></strong>(double&nbsp;red,
+                                  double&nbsp;green,
+                                  double&nbsp;blue,
+                                  int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class, double, double, double)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(int)">createGreyDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(T)">createGreyDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(T,%20double,%20double,%20double)">createGreyDataset</a></strong>(T&nbsp;clazz,
+                                  double&nbsp;red,
+                                  double&nbsp;green,
+                                  double&nbsp;blue)</code>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset(int)">createRedDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createRedDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset(T)">createRedDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Extract red colour channel</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue()">getBlue</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue(int...)">getBlue</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue(int)">getBlue</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlue(int,%20int)">getBlue</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlueAbs(int)">getBlueAbs</a></strong>(int&nbsp;n)</code>
+<div class="block">Get a blue value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getBlueView()">getBlueView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen()">getGreen</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen(int...)">getGreen</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen(int)">getGreen</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreen(int,%20int)">getGreen</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreenAbs(int)">getGreenAbs</a></strong>(int&nbsp;n)</code>
+<div class="block">Get a green value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getGreenView()">getGreenView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed()">getRed</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed(int...)">getRed</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed(int)">getRed</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRed(int,%20int)">getRed</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRedAbs(int)">getRedAbs</a></strong>(int&nbsp;n)</code>
+<div class="block">Get a red value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getRedView()">getRedView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#max(boolean...)">max</a></strong>(boolean...&nbsp;ignored)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RGBDataset.html#min(boolean...)">min</a></strong>(boolean...&nbsp;ignored)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.CompoundShortDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsInfs()">containsInfs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#containsNans()">containsNans</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getAbs(int,%20short[])">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray()">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int...)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getByteArray(int,%20int)">getByteArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray()">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArray(int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDoubleArrayAbs(int,%20double[])">getDoubleArrayAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementLongAbs(int)">getElementLongAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElements(int)">getElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementsView(int)">getElementsView</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue()">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int...)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFirstValue(int,%20int)">getFirstValue</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray()">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int...)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getFloatArray(int,%20int)">getFloatArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray()">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int...)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getIntArray(int,%20int)">getIntArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray()">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int...)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getLongArray(int,%20int)">getLongArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray()">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int...)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getShortArray(int,%20int)">getShortArray</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getStringAbs(int)">getStringAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iadd(java.lang.Object)">iadd</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#idivide(java.lang.Object)">idivide</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ifloor()">ifloor</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#imultiply(java.lang.Object)">imultiply</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ipower(java.lang.Object)">ipower</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iremainder(java.lang.Object)">iremainder</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#isubtract(java.lang.Object)">isubtract</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs(int,%20short)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setAbs(int,%20short[])">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[])">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItem(short[],%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean()">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int...)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBoolean(int,%20int)">getBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte()">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int...)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByte(int,%20int)">getByte</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble()">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int...)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDouble(int,%20int)">getDouble</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[])">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int...)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getDoubleArray(double[],%20int,%20int)">getDoubleArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat()">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int...)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getFloat(int,%20int)">getFloat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int...)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getInt(int,%20int)">getInt</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong()">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int...)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getLong(int,%20int)">getLong</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort()">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int...)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getShort(int,%20int)">getShort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxItem()">maxItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minItem()">minItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#variance()">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html#setStringFormat(java.text.Format)">setStringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setShape(int...)">setShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.INameable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></h3>
+<code><a href="../../../../org/eclipse/january/INameable.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/INameable.html#setName(java.lang.String)">setName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RGBDataset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.34">RGBDataset</a>()</pre>
+<div class="block">Create a null dataset</div>
+</li>
+</ul>
+<a name="RGBDataset(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.38">RGBDataset</a>(int...&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="RGBDataset(short[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.42">RGBDataset</a>(short[]&nbsp;data,
+          int...&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="RGBDataset(org.eclipse.january.dataset.RGBDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.50">RGBDataset</a>(<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;dataset)</pre>
+<div class="block">Copy a dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="RGBDataset(int[], int[], int[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.66">RGBDataset</a>(int[]&nbsp;redData,
+          int[]&nbsp;greenData,
+          int[]&nbsp;blueData,
+          int...&nbsp;shape)</pre>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>redData</code> - </dd><dd><code>greenData</code> - </dd><dd><code>blueData</code> - </dd><dd><code>shape</code> - (can be null to create 1D dataset)</dd></dl>
+</li>
+</ul>
+<a name="RGBDataset(short[], short[], short[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.101">RGBDataset</a>(short[]&nbsp;redData,
+          short[]&nbsp;greenData,
+          short[]&nbsp;blueData,
+          int...&nbsp;shape)</pre>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>redData</code> - </dd><dd><code>greenData</code> - </dd><dd><code>blueData</code> - </dd><dd><code>shape</code> - (can be null to create 1D dataset)</dd></dl>
+</li>
+</ul>
+<a name="RGBDataset(byte[], byte[], byte[], int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.136">RGBDataset</a>(byte[]&nbsp;redData,
+          byte[]&nbsp;greenData,
+          byte[]&nbsp;blueData,
+          int...&nbsp;shape)</pre>
+<div class="block">Create a dataset using given data (red, green and blue parts are given separately)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>redData</code> - </dd><dd><code>greenData</code> - </dd><dd><code>blueData</code> - </dd><dd><code>shape</code> - (can be null to create 1D dataset)</dd></dl>
+</li>
+</ul>
+<a name="RGBDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.170">RGBDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;red,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;green,
+          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;blue)</pre>
+<div class="block">Create a dataset using given colour data (colour components are given separately)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>red</code> - </dd><dd><code>green</code> - </dd><dd><code>blue</code> - </dd></dl>
+</li>
+</ul>
+<a name="RGBDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RGBDataset</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.196">RGBDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;grey)</pre>
+<div class="block">Create a dataset using given grey data</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>grey</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.27">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.55">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromObject(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromObject</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.217">createFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Create a RGB dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged
+ sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding
+ elemental dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>dataset with contents given by input</dd></dl>
+</li>
+</ul>
+<a name="createFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromCompoundDataset</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.227">createFromCompoundDataset</a>(<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a)</pre>
+<div class="block">Create a RGB dataset from a compound dataset (no normalisation performed)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>RGB dataset (grey if input dataset has less than 3 elements per item)</dd></dl>
+</li>
+</ul>
+<a name="createFromHSV(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromHSV</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.259">createFromHSV</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;value)</pre>
+<div class="block">Create a RGB dataset from hue, saturation and value dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>hue</code> - (in degrees from -360 to 360)</dd><dd><code>saturation</code> - (from 0 to 1), can be null to denote 1</dd><dd><code>value</code> - (from 0 to 1)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>RGB dataset</dd></dl>
+</li>
+</ul>
+<a name="createFromHSL(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createFromHSL</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.291">createFromHSL</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                       <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;lightness)</pre>
+<div class="block">Create a RGB dataset from hue, saturation and lightness dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>hue</code> - (in degrees from -360 to 360)</dd><dd><code>saturation</code> - (from 0 to 1), can be null to denote 1</dd><dd><code>lightness</code> - (from 0 to 1)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>RGB dataset</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.405">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.415">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getRed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRed</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.426">getRed</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>red value in the first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getRed(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRed</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.434">getRed</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>red value in given position</dd></dl>
+</li>
+</ul>
+<a name="getRed(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRed</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.443">getRed</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>red value in given position</dd></dl>
+</li>
+</ul>
+<a name="getRed(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRed</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.451">getRed</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>red value in given position</dd></dl>
+</li>
+</ul>
+<a name="getGreen()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGreen</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.459">getGreen</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>green value in the first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getGreen(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGreen</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.467">getGreen</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>green value in given position</dd></dl>
+</li>
+</ul>
+<a name="getGreen(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGreen</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.476">getGreen</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>green value in given position</dd></dl>
+</li>
+</ul>
+<a name="getGreen(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGreen</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.484">getGreen</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>green value in given position</dd></dl>
+</li>
+</ul>
+<a name="getBlue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlue</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.492">getBlue</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>blue value in the first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getBlue(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlue</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.500">getBlue</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>blue value in given position</dd></dl>
+</li>
+</ul>
+<a name="getBlue(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlue</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.509">getBlue</a>(int&nbsp;i,
+            int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>blue value in given position</dd></dl>
+</li>
+</ul>
+<a name="getBlue(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlue</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.517">getBlue</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>blue value in given position</dd></dl>
+</li>
+</ul>
+<a name="getRedAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRedAbs</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.528">getRedAbs</a>(int&nbsp;n)</pre>
+<div class="block">Get a red value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>red value</dd></dl>
+</li>
+</ul>
+<a name="getGreenAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGreenAbs</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.539">getGreenAbs</a>(int&nbsp;n)</pre>
+<div class="block">Get a green value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>green value</dd></dl>
+</li>
+</ul>
+<a name="getBlueAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlueAbs</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.550">getBlueAbs</a>(int&nbsp;n)</pre>
+<div class="block">Get a blue value from given absolute index as a short - note this index does not
+ take in account the item size so be careful when using with multi-element items</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>blue value</dd></dl>
+</li>
+</ul>
+<a name="createGreyDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="createGreyDataset(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.564">createGreyDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a grey-scale dataset of given type</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createGreyDataset(org.eclipse.january.dataset.Dataset,double,double,double)">
+<!--   -->
+</a><a name="createGreyDataset(T, double, double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.579">createGreyDataset</a>(T&nbsp;clazz,
+                                      double&nbsp;red,
+                                      double&nbsp;green,
+                                      double&nbsp;blue)</pre>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd><dd><code>red</code> - weight</dd><dd><code>green</code> - weight</dd><dd><code>blue</code> - weight</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a grey-scale dataset of given class</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createGreyDataset(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.590">createGreyDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>RGBDataset#createGreyDataset(Class)</code></i></div>
+<div class="block">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a grey-scale dataset of given class</dd></dl>
+</li>
+</ul>
+<a name="createGreyDataset(double, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreyDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.604">createGreyDataset</a>(double&nbsp;red,
+                                   double&nbsp;green,
+                                   double&nbsp;blue,
+                                   int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>RGBDataset#createGreyDataset(Class, double, double, double)</code></i></div>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>red</code> - weight</dd><dd><code>green</code> - weight</dd><dd><code>blue</code> - weight</dd><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a grey-scale dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="createRedDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="createRedDataset(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRedDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.621">createRedDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Extract red colour channel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset of given class</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createGreenDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="createGreenDataset(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreenDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.631">createGreenDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Extract green colour channel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset of given class</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createBlueDataset(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a><a name="createBlueDataset(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBlueDataset</h4>
+<pre>public&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.641">createBlueDataset</a>(T&nbsp;clazz)</pre>
+<div class="block">Extract blue colour channel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset of given class</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="createRedDataset(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createRedDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.652">createRedDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>RGBDataset#createRedDataset(Class)</code></i></div>
+<div class="block">Extract red colour channel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="createGreenDataset(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createGreenDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.663">createGreenDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>RGBDataset#createGreenDataset(Class)</code></i></div>
+<div class="block">Extract green colour channel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="createBlueDataset(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createBlueDataset</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.674">createBlueDataset</a>(int&nbsp;dtype)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>Use <code>RGBDataset#createBlueDataset(Class)</code></i></div>
+<div class="block">Extract blue colour channel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a dataset of given type</dd></dl>
+</li>
+</ul>
+<a name="getRedView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRedView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.708">getRedView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>red view</dd></dl>
+</li>
+</ul>
+<a name="getGreenView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGreenView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.715">getGreenView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>green view</dd></dl>
+</li>
+</ul>
+<a name="getBlueView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBlueView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.722">getBlueView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>blue view</dd></dl>
+</li>
+</ul>
+<a name="max(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>max</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.733">max</a>(boolean...&nbsp;ignored)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(boolean...)">max</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignored</code> - - Can be null, empty, or one or more booleans. By default, all booleans
+ are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second
+ boolean to ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Maximum value</dd></dl>
+</li>
+</ul>
+<a name="min(boolean...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>min</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RGBDataset.html#line.748">min</a>(boolean...&nbsp;ignored)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#min(boolean...)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(boolean...)">min</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>ignored</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Minimum value</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RGBDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/RGBDataset.html" target="_top">Frames</a></li>
+<li><a href="RGBDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.CompoundShortDataset">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Random.html b/apidocs/2.1.1/org/eclipse/january/dataset/Random.html
new file mode 100644
index 0000000..f3c8e87
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Random.html
@@ -0,0 +1,484 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Random (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Random (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Random.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Random.html" target="_top">Frames</a></li>
+<li><a href="Random.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Random" class="title">Class Random</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Random</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.29">Random</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Class to hold methods to create random datasets
+ 
+ Emulates numpy.random</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#Random()">Random</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#exponential(double,%20int...)">exponential</a></strong>(double&nbsp;beta,
+                      int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#lazyRand(int...)">lazyRand</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#lazyRand(int,%20java.lang.String,%20int...)">lazyRand</a></strong>(int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#lazyRand(java.lang.String,%20int...)">lazyRand</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#poisson(double,%20int...)">poisson</a></strong>(double&nbsp;lam,
+              int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#rand(double,%20double,%20int...)">rand</a></strong>(double&nbsp;low,
+        double&nbsp;high,
+        int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#rand(int...)">rand</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#randint(int,%20int,%20int[])">randint</a></strong>(int&nbsp;low,
+              int&nbsp;high,
+              int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#randn(double,%20double,%20int...)">randn</a></strong>(double&nbsp;mean,
+          double&nbsp;std,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#randn(int...)">randn</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#random_integers(int,%20int,%20int[])">random_integers</a></strong>(int&nbsp;low,
+                              int&nbsp;high,
+                              int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#seed(int)">seed</a></strong>(int&nbsp;seed)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#seed(int[])">seed</a></strong>(int[]&nbsp;seed)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Random.html#seed(long)">seed</a></strong>(long&nbsp;seed)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Random()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Random</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.29">Random</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="seed(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>seed</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.36">seed</a>(int&nbsp;seed)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>seed</code> - </dd></dl>
+</li>
+</ul>
+<a name="seed(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>seed</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.43">seed</a>(int[]&nbsp;seed)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>seed</code> - </dd></dl>
+</li>
+</ul>
+<a name="seed(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>seed</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.50">seed</a>(long&nbsp;seed)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>seed</code> - </dd></dl>
+</li>
+</ul>
+<a name="rand(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rand</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.58">rand</a>(int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from a uniform distribution between 0 (inclusive) and 1 (exclusive)</dd></dl>
+</li>
+</ul>
+<a name="rand(double, double, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rand</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.75">rand</a>(double&nbsp;low,
+                 double&nbsp;high,
+                 int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>low</code> - </dd><dd><code>high</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from a uniform distribution between low and high (both exclusive)</dd></dl>
+</li>
+</ul>
+<a name="randn(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>randn</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.93">randn</a>(int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from a Gaussian distribution with mean 0 and variance 1 
+ 
+ (The term Gaussian here is a description of a shape of data taken from the mathematician of the
+ same name Carl Friedrich Gauss  http://en.wikipedia.org/wiki/Carl_Friedrich_Gauss born in 1777.)</dd></dl>
+</li>
+</ul>
+<a name="randn(double, double, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>randn</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.110">randn</a>(double&nbsp;mean,
+                  double&nbsp;std,
+                  int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mean</code> - </dd><dd><code>std</code> - standard deviation</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from a Gaussian distribution with given mean and standard deviation</dd></dl>
+</li>
+</ul>
+<a name="randint(int, int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>randint</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.127">randint</a>(int&nbsp;low,
+                     int&nbsp;high,
+                     int[]&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>low</code> - </dd><dd><code>high</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from a discrete uniform distribution in range [low, high)</dd></dl>
+</li>
+</ul>
+<a name="random_integers(int, int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>random_integers</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.137">random_integers</a>(int&nbsp;low,
+                             int&nbsp;high,
+                             int[]&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>low</code> - </dd><dd><code>high</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from a discrete uniform distribution in range [low, high]</dd></dl>
+</li>
+</ul>
+<a name="exponential(double, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>exponential</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.159">exponential</a>(double&nbsp;beta,
+                        int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>beta</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from an exponential distribution with mean beta</dd></dl>
+</li>
+</ul>
+<a name="poisson(double, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>poisson</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.175">poisson</a>(double&nbsp;lam,
+                     int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lam</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>an array of values sampled from an exponential distribution with mean lambda</dd></dl>
+</li>
+</ul>
+<a name="lazyRand(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lazyRand</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.190">lazyRand</a>(int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a lazy dataset with uniformly distributed random numbers</dd></dl>
+</li>
+</ul>
+<a name="lazyRand(java.lang.String, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lazyRand</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.199">lazyRand</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a lazy dataset with uniformly distributed random numbers</dd></dl>
+</li>
+</ul>
+<a name="lazyRand(int, java.lang.String, int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>lazyRand</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Random.html#line.209">lazyRand</a>(int&nbsp;dtype,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    int...&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dtype</code> - </dd><dd><code>name</code> - </dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a lazy dataset with uniformly distributed random numbers</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Random.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Random.html" target="_top">Frames</a></li>
+<li><a href="Random.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/RunningAverage.html b/apidocs/2.1.1/org/eclipse/january/dataset/RunningAverage.html
new file mode 100644
index 0000000..e5d9f20
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/RunningAverage.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RunningAverage (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="RunningAverage (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RunningAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/RunningAverage.html" target="_top">Frames</a></li>
+<li><a href="RunningAverage.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class RunningAverage" class="title">Class RunningAverage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.RunningAverage</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/RunningAverage.html#line.17">RunningAverage</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">A running mean class</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#RunningAverage(org.eclipse.january.dataset.IDataset)">RunningAverage</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#getCount()">getCount</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#getCurrentAverage()">getCurrentAverage</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/RunningAverage.html#update(org.eclipse.january.dataset.IDataset)">update</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;dataset)</code>
+<div class="block">Update average</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RunningAverage(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RunningAverage</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RunningAverage.html#line.26">RunningAverage</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;dataset)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="update(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RunningAverage.html#line.42">update</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;dataset)</pre>
+<div class="block">Update average</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="getCount()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RunningAverage.html#line.100">getCount</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>count</dd></dl>
+</li>
+</ul>
+<a name="getCurrentAverage()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCurrentAverage</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/RunningAverage.html#line.107">getCurrentAverage</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>current average</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RunningAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/RunningAverage.html" target="_top">Frames</a></li>
+<li><a href="RunningAverage.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ShapeChangeChecker.html b/apidocs/2.1.1/org/eclipse/january/dataset/ShapeChangeChecker.html
new file mode 100644
index 0000000..f92598a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ShapeChangeChecker.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShapeChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ShapeChangeChecker (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ShapeChangeChecker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ShapeChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="ShapeChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ShapeChangeChecker" class="title">Class ShapeChangeChecker</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ShapeChangeChecker</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ShapeChangeChecker.html#line.18">ShapeChangeChecker</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></pre>
+<div class="block">Checks whether shape has changed between waits. Useful for where datasets are being extended.
+ Note, <a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><code>LazyDynamicDataset</code></a> already alerts its listeners when its shape is resized</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#ShapeChangeChecker()">ShapeChangeChecker</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#check()">check</a></strong>()</code>
+<div class="block">Check for any change.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;dataset)</code>
+<div class="block">Set dataset to be checked for signs of change.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ShapeChangeChecker()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ShapeChangeChecker</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeChangeChecker.html#line.18">ShapeChangeChecker</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setDataset(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeChangeChecker.html#line.24">setDataset</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;dataset)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">IDatasetChangeChecker</a></code></strong></div>
+<div class="block">Set dataset to be checked for signs of change. Do any state initialization in here.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="check()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>check</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeChangeChecker.html#line.33">check</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#check()">IDatasetChangeChecker</a></code></strong></div>
+<div class="block">Check for any change. Also update state information.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#check()">check</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if possible change may have occurred</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ShapeChangeChecker.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ShapeChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="ShapeChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ShapeUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/ShapeUtils.html
new file mode 100644
index 0000000..3a8b24a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ShapeUtils.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShapeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ShapeUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ShapeUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ShapeUtils.html" target="_top">Frames</a></li>
+<li><a href="ShapeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ShapeUtils" class="title">Class ShapeUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ShapeUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.17">ShapeUtils</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#areShapesBroadcastCompatible(int[],%20int[])">areShapesBroadcastCompatible</a></strong>(int[]&nbsp;ashape,
+                                                        int[]&nbsp;bshape)</code>
+<div class="block">Check if shapes are broadcast compatible</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible(int[],%20int[])">areShapesCompatible</a></strong>(int[]&nbsp;ashape,
+                                      int[]&nbsp;bshape)</code>
+<div class="block">Check if shapes are compatible, ignoring extra axes of length 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#areShapesCompatible(int[],%20int[],%20int)">areShapesCompatible</a></strong>(int[]&nbsp;ashape,
+                                      int[]&nbsp;bshape,
+                                      int&nbsp;axis)</code>
+<div class="block">Check if shapes are compatible but skip axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#calcLongSize(int[])">calcLongSize</a></strong>(int[]&nbsp;shape)</code>
+<div class="block">Calculate total number of items in given shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#calcSize(int[])">calcSize</a></strong>(int[]&nbsp;shape)</code>
+<div class="block">Calculate total number of items in given shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#checkAxis(int,%20int)">checkAxis</a></strong>(int&nbsp;rank,
+                  int&nbsp;axis)</code>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g,
+                                    <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;h)</code>
+<div class="block">This function takes a dataset and checks its shape against another dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getFlat1DIndex(int[],%20int[])">getFlat1DIndex</a></strong>(int[]&nbsp;shape,
+                            int[]&nbsp;pos)</code>
+<div class="block">Get flattened view index of given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getNDPositionFromShape(int,%20int[])">getNDPositionFromShape</a></strong>(int&nbsp;n,
+                                            int[]&nbsp;shape)</code>
+<div class="block">Get n-D position from given index</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#getShapeFromObject(java.lang.Object)">getShapeFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Get shape from object (array or list supported)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#squeezeShape(int[],%20boolean)">squeezeShape</a></strong>(int[]&nbsp;oshape,
+                        boolean&nbsp;onlyFromEnds)</code>
+<div class="block">Remove dimensions of 1 in given shape - from both ends only, if true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html#squeezeShape(int[],%20int)">squeezeShape</a></strong>(int[]&nbsp;oshape,
+                        int&nbsp;axis)</code>
+<div class="block">Remove dimension of 1 in given shape</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="calcLongSize(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcLongSize</h4>
+<pre>public static&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.27">calcLongSize</a>(int[]&nbsp;shape)</pre>
+<div class="block">Calculate total number of items in given shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>size</dd></dl>
+</li>
+</ul>
+<a name="calcSize(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>calcSize</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.62">calcSize</a>(int[]&nbsp;shape)</pre>
+<div class="block">Calculate total number of items in given shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>size</dd></dl>
+</li>
+</ul>
+<a name="areShapesBroadcastCompatible(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>areShapesBroadcastCompatible</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.79">areShapesBroadcastCompatible</a>(int[]&nbsp;ashape,
+                                   int[]&nbsp;bshape)</pre>
+<div class="block">Check if shapes are broadcast compatible</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ashape</code> - </dd><dd><code>bshape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if they are compatible</dd></dl>
+</li>
+</ul>
+<a name="areShapesCompatible(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>areShapesCompatible</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.104">areShapesCompatible</a>(int[]&nbsp;ashape,
+                          int[]&nbsp;bshape)</pre>
+<div class="block">Check if shapes are compatible, ignoring extra axes of length 1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ashape</code> - </dd><dd><code>bshape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if they are compatible</dd></dl>
+</li>
+</ul>
+<a name="areShapesCompatible(int[], int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>areShapesCompatible</h4>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.135">areShapesCompatible</a>(int[]&nbsp;ashape,
+                          int[]&nbsp;bshape,
+                          int&nbsp;axis)</pre>
+<div class="block">Check if shapes are compatible but skip axis</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ashape</code> - </dd><dd><code>bshape</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if they are compatible</dd></dl>
+</li>
+</ul>
+<a name="squeezeShape(int[], boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeShape</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.160">squeezeShape</a>(int[]&nbsp;oshape,
+                 boolean&nbsp;onlyFromEnds)</pre>
+<div class="block">Remove dimensions of 1 in given shape - from both ends only, if true</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>oshape</code> - </dd><dd><code>onlyFromEnds</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>newly squeezed shape (or original if unsqueezed)</dd></dl>
+</li>
+</ul>
+<a name="squeezeShape(int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>squeezeShape</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.224">squeezeShape</a>(int[]&nbsp;oshape,
+                 int&nbsp;axis)</pre>
+<div class="block">Remove dimension of 1 in given shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>oshape</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>newly squeezed shape</dd></dl>
+</li>
+</ul>
+<a name="getShapeFromObject(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShapeFromObject</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.254">getShapeFromObject</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block">Get shape from object (array or list supported)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape can be null if obj is null</dd></dl>
+</li>
+</ul>
+<a name="getNDPositionFromShape(int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNDPositionFromShape</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.333">getNDPositionFromShape</a>(int&nbsp;n,
+                           int[]&nbsp;shape)</pre>
+<div class="block">Get n-D position from given index</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - index</dd><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>n-D position</dd></dl>
+</li>
+</ul>
+<a name="getFlat1DIndex(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFlat1DIndex</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.364">getFlat1DIndex</a>(int[]&nbsp;shape,
+                 int[]&nbsp;pos)</pre>
+<div class="block">Get flattened view index of given position</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>pos</code> - the integer array specifying the n-D position</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the index on the flattened dataset</dd></dl>
+</li>
+</ul>
+<a name="checkCompatibility(org.eclipse.january.dataset.ILazyDataset, org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkCompatibility</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.384">checkCompatibility</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g,
+                      <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;h)
+                               throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
+<div class="block">This function takes a dataset and checks its shape against another dataset. If they are both of the same size,
+ then this returns with no error, if there is a problem, then an error is thrown.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>g</code> - The first dataset to be compared</dd><dd><code>h</code> - The second dataset to be compared</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - This will be thrown if there is a problem with the compatibility</dd></dl>
+</li>
+</ul>
+<a name="checkAxis(int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>checkAxis</h4>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShapeUtils.html#line.398">checkAxis</a>(int&nbsp;rank,
+            int&nbsp;axis)</pre>
+<div class="block">Check that axis is in range [-rank,rank)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>rank</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>sanitized axis in range [0, rank)</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ShapeUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ShapeUtils.html" target="_top">Frames</a></li>
+<li><a href="ShapeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/ShortDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/ShortDataset.html
new file mode 100644
index 0000000..11da3b1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/ShortDataset.html
@@ -0,0 +1,1973 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ShortDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ShortDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ShortDataset.html" target="_top">Frames</a></li>
+<li><a href="ShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class ShortDataset" class="title">Class ShortDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.ShortDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.30">ShortDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.ShortDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setAbs(int,%20short)">setAbs</a></strong>(int&nbsp;index,
+            short&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem(short)">setItem</a></strong>(short&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem(short,%20int...)">setItem</a></strong>(short&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem(short,%20int)">setItem</a></strong>(short&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItem(short,%20int,%20int)">setItem</a></strong>(short&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/ShortDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;short[] <a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.34">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.37">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.41">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.56">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.158">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.180">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.185">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.251">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;short[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.266">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.271">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.278">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.293">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.298">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.303">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.308">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.313">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.318">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, short)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.332">setAbs</a>(int&nbsp;index,
+          short&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.338">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.345">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.357">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.365">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.374">get</a>(int&nbsp;i,
+        int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.382">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.387">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.392">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.397">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.402">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.407">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.412">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.417">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.422">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.427">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.432">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.437">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.442">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.447">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.452">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.457">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.462">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.467">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.472">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.477">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.482">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.487">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.492">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.497">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.502">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.507">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.512">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.517">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.522">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.527">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.532">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.537">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.542">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.547">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.552">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.557">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.562">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(short)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.572">setItem</a>(short&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(short, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.582">setItem</a>(short&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(short, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.593">setItem</a>(short&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(short, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.603">setItem</a>(short&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.608">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.613">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.618">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.623">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.632">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.656">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.683">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.700">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.712">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.724">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.752">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.779">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.818">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                    <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.858">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.877">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.908">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.926">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.944">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.949">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.954">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.959">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.994">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.1030">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.1065">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.1117">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.1122">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.1170">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/ShortDataset.html#line.1238">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ShortDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/ShortDataset.html" target="_top">Frames</a></li>
+<li><a href="ShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/SingleInputBroadcastIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..b8a1a2d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SingleInputBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="SingleInputBroadcastIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SingleInputBroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SingleInputBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleInputBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class SingleInputBroadcastIterator" class="title">Class SingleInputBroadcastIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.SingleInputBroadcastIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.22">SingleInputBroadcastIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aDouble">aDouble</a></strong></code>
+<div class="block">Current value in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aIndex">aIndex</a></strong></code>
+<div class="block">Index in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#aLong">aLong</a></strong></code>
+<div class="block">Current value in array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#oIndex">oIndex</a></strong></code>
+<div class="block">Index in array</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">SingleInputBroadcastIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">SingleInputBroadcastIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                        boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20boolean)">SingleInputBroadcastIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                        boolean&nbsp;createIfNull,
+                                                        boolean&nbsp;allowInteger,
+                                                        boolean&nbsp;allowComplex)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getOutput()">getOutput</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#isOutputDouble()">isOutputDouble</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#setOutputDouble(boolean)">setOutputDouble</a></strong>(boolean&nbsp;asDouble)</code>
+<div class="block">Set to output doubles</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="aIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.46">aIndex</a></pre>
+<div class="block">Index in array</div>
+</li>
+</ul>
+<a name="oIndex">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>oIndex</h4>
+<pre>public&nbsp;int <a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.46">oIndex</a></pre>
+<div class="block">Index in array</div>
+</li>
+</ul>
+<a name="aDouble">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>aDouble</h4>
+<pre>public&nbsp;double <a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.51">aDouble</a></pre>
+<div class="block">Current value in array</div>
+</li>
+</ul>
+<a name="aLong">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>aLong</h4>
+<pre>public&nbsp;long <a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.56">aLong</a></pre>
+<div class="block">Current value in array</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SingleInputBroadcastIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.64">SingleInputBroadcastIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - (can be null for new dataset, or a)</dd></dl>
+</li>
+</ul>
+<a name="SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SingleInputBroadcastIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.73">SingleInputBroadcastIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - (can be null for new dataset, or a)</dd><dd><code>createIfNull</code> - (by default, can create float or complex datasets)</dd></dl>
+</li>
+</ul>
+<a name="SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean, boolean, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SingleInputBroadcastIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.85">SingleInputBroadcastIterator</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull,
+                            boolean&nbsp;allowInteger,
+                            boolean&nbsp;allowComplex)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>o</code> - (can be null for new dataset, or a)</dd><dd><code>createIfNull</code> - </dd><dd><code>allowInteger</code> - if true, can create integer datasets</dd><dd><code>allowComplex</code> - if true, can create complex datasets</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="isOutputDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOutputDouble</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.156">isOutputDouble</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if output from iterator is double</dd></dl>
+</li>
+</ul>
+<a name="setOutputDouble(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOutputDouble</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.164">setOutputDouble</a>(boolean&nbsp;asDouble)</pre>
+<div class="block">Set to output doubles</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>asDouble</code> - </dd></dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.172">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.177">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getOutput()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutput</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.227">getOutput</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>output dataset (can be null)</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.232">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html#line.237">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SingleInputBroadcastIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SingleInputBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleInputBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/SingleItemIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/SingleItemIterator.html
new file mode 100644
index 0000000..66ed3ba
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/SingleItemIterator.html
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SingleItemIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="SingleItemIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SingleItemIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SingleItemIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleItemIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class SingleItemIterator" class="title">Class SingleItemIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.SingleItemIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SingleItemIterator.html#line.18">SingleItemIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">Class to run over a broadcasted single-item dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#SingleItemIterator(int,%20int)">SingleItemIterator</a></strong>(int&nbsp;offset,
+                                    int&nbsp;size)</code>
+<div class="block">Constructor for an iterator over single item that will be broadcast over
+ given size of broadcast shape</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SingleItemIterator(int, int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SingleItemIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleItemIterator.html#line.29">SingleItemIterator</a>(int&nbsp;offset,
+                  int&nbsp;size)</pre>
+<div class="block">Constructor for an iterator over single item that will be broadcast over
+ given size of broadcast shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>offset</code> - offset to single item</dd><dd><code>size</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleItemIterator.html#line.36">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleItemIterator.html#line.41">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SingleItemIterator.html#line.46">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SingleItemIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SingleItemIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleItemIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Slice.html b/apidocs/2.1.1/org/eclipse/january/dataset/Slice.html
new file mode 100644
index 0000000..4afcefa
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Slice.html
@@ -0,0 +1,805 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Slice (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Slice (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Slice.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Slice.html" target="_top">Frames</a></li>
+<li><a href="Slice.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Slice" class="title">Class Slice</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Slice</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.47">Slice</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.
+ <br><br>
+ The start index is inclusive, for example, if we want to get data from index 1, so sliceData will be <b>[2,3]</b> :
+ <pre>
+ <code>final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});
+ Dataset sliceData = onedData.getSlice(new Slice(1, null, null));
+ </code>
+ </pre>
+ 
+ If Slice is specified with only one argument, this will be the stop index which is exclusive. In this case sliceData will be <b>[1,2]</b> :
+ <pre>
+ <code>final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});
+ Dataset sliceData = onedData.getSlice(new Slice(2));
+ </code>
+ </pre>
+ 
+ To create a 1D Slice, so sliceData is : <b>[6, 5, 4]</b>, we will do :
+ <pre>
+ <code>final Dataset sliceData = DatasetFactory.createFromObject(new int[]{10,9,8,7,6,5,4,3,2,1,0});
+ Dataset newOnedData = sliceData.getSlice(new Slice(4, 7, 1));
+ </code>
+ </pre>
+ <br>
+ For more informations, see the sliceFrom1D example in SlicingExamples.</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.Slice">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice()">Slice</a></strong>()</code>
+<div class="block">Constructs a Slice object with the start and the stop value representing
+ the entirety of the sliced dimension of the Dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice(java.lang.Integer)">Slice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</code>
+<div class="block">Constructs a Slice object with, by default the start set to 0 and with a
+ step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice(java.lang.Integer,%20java.lang.Integer)">Slice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</code>
+<div class="block">Constructs a Slice object with, by default a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#Slice(java.lang.Integer,%20java.lang.Integer,%20java.lang.Integer)">Slice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;step)</code>
+<div class="block">Constructs a Slice object on which it is possible to chooe the start, the
+ stop and the step.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#appendSliceToString(java.lang.StringBuilder,%20int,%20int,%20int,%20int)">appendSliceToString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;s,
+                                      int&nbsp;len,
+                                      int&nbsp;beg,
+                                      int&nbsp;end,
+                                      int&nbsp;del)</code>
+<div class="block">Returns a String representation of the Slice comparable to the python
+ representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#clone()">clone</a></strong>()</code>
+<div class="block">Creates a deep copy of the Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#convertFromSlice(org.eclipse.january.dataset.Slice[],%20int[],%20int[],%20int[],%20int[])">convertFromSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                                int[]&nbsp;shape,
+                                int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</code>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#convertFromString(java.lang.String)">convertFromString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sliceString)</code>
+<div class="block">Converts string in a Slice array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#convertToSlice(int[],%20int[],%20int[])">convertToSlice</a></strong>(int[]&nbsp;start,
+                            int[]&nbsp;stop,
+                            int[]&nbsp;step)</code>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#createString(int[],%20int[],%20int[],%20int[])">createString</a></strong>(int[]&nbsp;shape,
+                        int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Creates a string representing the slice taken from given shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#createString(org.eclipse.january.dataset.Slice...)">createString</a></strong>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</code>
+<div class="block">Creates a string representation of slices.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#flip()">flip</a></strong>()</code>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getEnd()">getEnd</a></strong>()</code>
+<div class="block">Returns the last value inside of Slice.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getLength()">getLength</a></strong>()</code>
+<div class="block">Returns the maximum value of the slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getNumSteps()">getNumSteps</a></strong>()</code>
+<div class="block">Returns the number of steps inside of the Slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getNumSteps(int,%20int)">getNumSteps</a></strong>(int&nbsp;beg,
+                      int&nbsp;end)</code>
+<div class="block">Returns the number of steps inside of the Slice from a point to an other
+ point minus 1 because this is an exclusive index</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getPosition(int)">getPosition</a></strong>(int&nbsp;n)</code>
+<div class="block">Returns the index of the n-th step inside of the slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getStart()">getStart</a></strong>()</code>
+<div class="block">Returns the starting index of the slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getStep()">getStep</a></strong>()</code>
+<div class="block">Returns the step of the slice.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#getStop()">getStop</a></strong>()</code>
+<div class="block">Returns the stopping index of the slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#isSliceComplete()">isSliceComplete</a></strong>()</code>
+<div class="block">Returns <code>true</code> if the slice has a maximum size equal to the current
+ size, else <code>false</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#setLength(int)">setLength</a></strong>(int&nbsp;length)</code>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#setPosition(int)">setPosition</a></strong>(int&nbsp;beg)</code>
+<div class="block">Move the start and end to an other index keeping the same step and the
+ same gap between the two values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#setStart(java.lang.Integer)">setStart</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start)</code>
+<div class="block">Set the starting index of the slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#setStep(int)">setStep</a></strong>(int&nbsp;step)</code>
+<div class="block">Set the step size inside of the Slice.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#setStop(java.lang.Integer)">setStop</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</code>
+<div class="block">Set the stopping index of the slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Slice.html#toString()">toString</a></strong>()</code>
+<div class="block">Returns a string construction of the slice with the python form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Slice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.60">Slice</a>()</pre>
+<div class="block">Constructs a Slice object with the start and the stop value representing
+ the entirety of the sliced dimension of the Dataset.</div>
+</li>
+</ul>
+<a name="Slice(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.73">Slice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</pre>
+<div class="block">Constructs a Slice object with, by default the start set to 0 and with a
+ step of 1. If the stop point of the Slice is <code>null</code>, it will be set
+ to the stop argument default to the end of the dimension that the slice
+ is applied to.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - the stop point of the Slice</dd></dl>
+</li>
+</ul>
+<a name="Slice(java.lang.Integer, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.89">Slice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start,
+     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</pre>
+<div class="block">Constructs a Slice object with, by default a step of 1. If the start
+ point of the Slice is <code>null</code>, it will be set automatically to 0. If
+ the stop point of the Slice is <code>null</code>, it will be set to the stop
+ argument default to the end of the dimension that the slice is applied
+ to.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - the start point of the Slice</dd><dd><code>stop</code> - the stop point of the Slice</dd></dl>
+</li>
+</ul>
+<a name="Slice(java.lang.Integer, java.lang.Integer, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Slice</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.108">Slice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start,
+     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop,
+     <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;step)</pre>
+<div class="block">Constructs a Slice object on which it is possible to chooe the start, the
+ stop and the step. If the start point of the Slice is <code>null</code>, it
+ will be set automatically to 0. If the stop point of the Slice is
+ <code>null</code>, it will be set to the stop argument default to the end of
+ the dimension that the slice is applied to. If the the wanted step is set
+ to <code>null</code>, it will be set by default to 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - the start point of the Slice, may be <code>null</code></dd><dd><code>stop</code> - the stop point of the Slice, may be <code>null</code></dd><dd><code>step</code> - the step wanted to browse the Dataset, may be <code>null</code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.133">clone</a>()</pre>
+<div class="block">Creates a deep copy of the Slice.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>New Slice with the current Slice properties</dd></dl>
+</li>
+</ul>
+<a name="setLength(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setLength</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.144">setLength</a>(int&nbsp;length)</pre>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>length</code> - Wanted size of dimensions</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The Slice which the method is called on</dd></dl>
+</li>
+</ul>
+<a name="isSliceComplete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSliceComplete</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.162">isSliceComplete</a>()</pre>
+<div class="block">Returns <code>true</code> if the slice has a maximum size equal to the current
+ size, else <code>false</code>.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if slice represents complete dimension,
+         <code>false</code> in the other case.</dd></dl>
+</li>
+</ul>
+<a name="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.177">getLength</a>()</pre>
+<div class="block">Returns the maximum value of the slice.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Maximum value of the slice</dd></dl>
+</li>
+</ul>
+<a name="getStart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStart</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.186">getStart</a>()</pre>
+<div class="block">Returns the starting index of the slice.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Start point of the slice</dd></dl>
+</li>
+</ul>
+<a name="getStop()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStop</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.195">getStop</a>()</pre>
+<div class="block">Returns the stopping index of the slice.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Stop point of the slice</dd></dl>
+</li>
+</ul>
+<a name="getStep()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStep</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.204">getStep</a>()</pre>
+<div class="block">Returns the step of the slice.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Step of the slice</dd></dl>
+</li>
+</ul>
+<a name="setStart(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStart</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.215">setStart</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start)</pre>
+<div class="block">Set the starting index of the slice. If the start point of the Slice is
+ <code>null</code>, it will be set automatically to 0.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - Starting index of the Slice, may be <code>null</code></dd></dl>
+</li>
+</ul>
+<a name="setStop(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStop</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.240">setStop</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop)</pre>
+<div class="block">Set the stopping index of the slice. If the stop point of the Slice is
+ <code>null</code>, it will be set to the stop argument default to the end of
+ the dimension that the slice is applied to.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>stop</code> - Stopping index of the Slice, may be <code>null</code></dd></dl>
+</li>
+</ul>
+<a name="setPosition(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPosition</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.268">setPosition</a>(int&nbsp;beg)</pre>
+<div class="block">Move the start and end to an other index keeping the same step and the
+ same gap between the two values</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>beg</code> - New starting point</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Return <code>true</code> if the end was reached, <code>false</code> in the
+         other case.</dd></dl>
+</li>
+</ul>
+<a name="getPosition(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPosition</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.288">getPosition</a>(int&nbsp;n)</pre>
+<div class="block">Returns the index of the n-th step inside of the slice</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Wanted step index in the slice</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Return the index of the step inside of the Slice</dd></dl>
+</li>
+</ul>
+<a name="setStep(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStep</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.320">setStep</a>(int&nbsp;step)</pre>
+<div class="block">Set the step size inside of the Slice. If the the wanted step is set to
+ <code>null</code>, it will be set by default to 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>step</code> - New wanted step, may be <code>null</code></dd></dl>
+</li>
+</ul>
+<a name="appendSliceToString(java.lang.StringBuilder, int, int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendSliceToString</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.342">appendSliceToString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;s,
+                       int&nbsp;len,
+                       int&nbsp;beg,
+                       int&nbsp;end,
+                       int&nbsp;del)</pre>
+<div class="block">Returns a String representation of the Slice comparable to the python
+ representation.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>s</code> - String builder</dd><dd><code>len</code> - Maximal length of the Slice, or -1 if not set</dd><dd><code>beg</code> - Start index of the Slice</dd><dd><code>end</code> - Stop index of the Slice</dd><dd><code>del</code> - Step of the Slice</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.383">toString</a>()</pre>
+<div class="block">Returns a string construction of the slice with the python form.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Constructed String.</dd></dl>
+</li>
+</ul>
+<a name="getNumSteps()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumSteps</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.395">getNumSteps</a>()</pre>
+<div class="block">Returns the number of steps inside of the Slice</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Number of steps inside of the Slice</dd></dl>
+</li>
+</ul>
+<a name="getNumSteps(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumSteps</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.421">getNumSteps</a>(int&nbsp;beg,
+              int&nbsp;end)</pre>
+<div class="block">Returns the number of steps inside of the Slice from a point to an other
+ point minus 1 because this is an exclusive index</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>beg</code> - Starting point</dd><dd><code>end</code> - (exclusive) Stopping point</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Numbers of steps between the 2 limits.</dd></dl>
+</li>
+</ul>
+<a name="getEnd()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnd</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.436">getEnd</a>()</pre>
+<div class="block">Returns the last value inside of Slice.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Last value in the slice, it can be a lower value than the start
+         if the step is going backward</dd></dl>
+</li>
+</ul>
+<a name="flip()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flip</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.454">flip</a>()</pre>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.
+ <p>
+ Note : the stop value may not be preserved across two flips
+ </p></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Flipped Slice.</dd></dl>
+</li>
+</ul>
+<a name="convertFromSlice(org.eclipse.january.dataset.Slice[], int[], int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertFromSlice</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.483">convertFromSlice</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                    int[]&nbsp;shape,
+                    int[]&nbsp;start,
+                    int[]&nbsp;stop,
+                    int[]&nbsp;step)</pre>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - Input array of Slices wanted to convert</dd><dd><code>shape</code> - Input array of Slices shapes</dd><dd><code>start</code> - Output array of Slices starts</dd><dd><code>stop</code> - Output array of Slices stops</dd><dd><code>step</code> - Output array of Slices steps</dd></dl>
+</li>
+</ul>
+<a name="convertToSlice(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToSlice</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.559">convertToSlice</a>(int[]&nbsp;start,
+                     int[]&nbsp;stop,
+                     int[]&nbsp;step)</pre>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - Array of Slices starts</dd><dd><code>stop</code> - Array of Slices stops</dd><dd><code>step</code> - Array of Slices steps</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Slice array corresponding to the starts, stops and steps arrays
+         entered.</dd></dl>
+</li>
+</ul>
+<a name="convertFromString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertFromString</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.582">convertFromString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sliceString)</pre>
+<div class="block">Converts string in a Slice array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sliceString</code> - String of the Slice array</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Slice array created from the given string</dd></dl>
+</li>
+</ul>
+<a name="createString(int[], int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createString</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.644">createString</a>(int[]&nbsp;shape,
+                  int[]&nbsp;start,
+                  int[]&nbsp;stop,
+                  int[]&nbsp;step)</pre>
+<div class="block">Creates a string representing the slice taken from given shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of Slices shapes</dd><dd><code>start</code> - Array of Slices starts</dd><dd><code>stop</code> - Array of Slices stops</dd><dd><code>step</code> - Array of Slices steps</dd>
+<dt><span class="strong">Returns:</span></dt><dd>String representation of the Slice</dd></dl>
+</li>
+</ul>
+<a name="createString(org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createString</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Slice.html#line.670">createString</a>(<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</pre>
+<div class="block">Creates a string representation of slices.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slices</code> - Wanted Slices to put inside of the string representation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Return the string representation of the Slices entered.</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Slice.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Slice.html" target="_top">Frames</a></li>
+<li><a href="Slice.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/SliceIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/SliceIterator.html
new file mode 100644
index 0000000..82b23da
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/SliceIterator.html
@@ -0,0 +1,595 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="SliceIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SliceIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class SliceIterator" class="title">Class SliceIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.SliceIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a>, <a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.25">SliceIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.
+ 
+ This is an Iterator thats allows the programmer to traverse the elements of a sliced Dataset and obtain the current position, the starts, steps,
+ shapes.
+ Moreover, there is possibilities to set the start point to begin at the wanted position.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;sshape)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;sshape,
+                          int&nbsp;isize)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;start,
+                          int[]&nbsp;sshape)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;start,
+                          int[]&nbsp;sshape,
+                          int&nbsp;isize)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;start,
+                          int[]&nbsp;step,
+                          int[]&nbsp;sshape)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int[],%20int)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int[]&nbsp;start,
+                          int[]&nbsp;step,
+                          int[]&nbsp;sshape,
+                          int&nbsp;isize)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int&nbsp;isize,
+                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos()">getPos</a></strong>()</code>
+<div class="block">Returns the current position of the iterator.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape()">getShape</a></strong>()</code>
+<div class="block">Returns an array of the Slices shapes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart()">getStart</a></strong>()</code>
+<div class="block">Returns an array of starts indexes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep()">getStep</a></strong>()</code>
+<div class="block">Returns an array of steps</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext()">hasNext</a></strong>()</code>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart(int...)">setStart</a></strong>(int...&nbsp;newStart)</code>
+<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
+ is set by default to 0</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SliceIterator(int[], int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.52">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;sshape)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.69">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;sshape)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.86">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd><dd><code>isize</code> - Number of elements in an item</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, int[], int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.105">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd><dd><code>isize</code> - Number of elements in an item</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.124">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;step,
+             int[]&nbsp;sshape)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>step</code> - Array of steps, may be <code>null</code>, but can't be 0</dd><dd><code>sshape</code> - shape of new dataset, i.e. slice</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.139">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>slice</code> - SliceND to iterate on</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, int, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.156">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int&nbsp;isize,
+             <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>isize</code> - Number of elements in an item</dd><dd><code>slice</code> - SliceND to iterate on</dd></dl>
+</li>
+</ul>
+<a name="SliceIterator(int[], int, int[], int[], int[], int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SliceIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.177">SliceIterator</a>(int[]&nbsp;shape,
+             int&nbsp;length,
+             int[]&nbsp;start,
+             int[]&nbsp;step,
+             int[]&nbsp;sshape,
+             int&nbsp;isize)</pre>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>step</code> - Array of steps, may be <code>null</code>, but can't be 0</dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd><dd><code>isize</code> - Number of elements in an item</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setStart(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStart</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.234">setStart</a>(int...&nbsp;newStart)</pre>
+<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
+ is set by default to 0</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newStart</code> - Array of new starts indexes (prefix with zeros if necessary),
+            may be <code>null</code></dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.265">reset</a>()</pre>
+<div class="block">Reset the Iterator to the first Slice.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.290">hasNext</a>()</pre>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Returns  if the iteration has more Slice, <code>false</code> in
+         the other case</dd></dl>
+</li>
+</ul>
+<a name="getStart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStart</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.316">getStart</a>()</pre>
+<div class="block">Returns an array of starts indexes.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Array of starts indexes</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.326">getPos</a>()</pre>
+<div class="block">Returns the current position of the iterator.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Iterator current position</dd></dl>
+</li>
+</ul>
+<a name="getStep()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStep</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.335">getStep</a>()</pre>
+<div class="block">Returns an array of steps</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Array of steps</dd></dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.345">getShape</a>()</pre>
+<div class="block">Returns an array of the Slices shapes.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Array of shapes.</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SliceIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/SliceND.html b/apidocs/2.1.1/org/eclipse/january/dataset/SliceND.html
new file mode 100644
index 0000000..c9ccdd7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/SliceND.html
@@ -0,0 +1,713 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceND (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="SliceND (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SliceND.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceND.html" target="_top">Frames</a></li>
+<li><a href="SliceND.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class SliceND" class="title">Class SliceND</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.SliceND</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.21">SliceND</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored. With unlimited dimensions, extending past the original shape is only
+ allowed if the stopping value is given.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[])">SliceND</a></strong>(int[]&nbsp;shape)</code>
+<div class="block">Construct a nD Slice for whole of shape.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20int[],%20int[])">SliceND</a></strong>(int[]&nbsp;shape,
+              int[]&nbsp;start,
+              int[]&nbsp;stop,
+              int[]&nbsp;step)</code>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20int[],%20int[],%20int[])">SliceND</a></strong>(int[]&nbsp;shape,
+              int[]&nbsp;maxShape,
+              int[]&nbsp;start,
+              int[]&nbsp;stop,
+              int[]&nbsp;step)</code>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20org.eclipse.january.dataset.Slice...)">SliceND</a></strong>(int[]&nbsp;shape,
+              int[]&nbsp;maxShape,
+              <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20org.eclipse.january.dataset.Slice...)">SliceND</a></strong>(int[]&nbsp;shape,
+              <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#clone()">clone</a></strong>()</code>
+<div class="block">Creates a deep copy of the SliceND.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#convertToSlice()">convertToSlice</a></strong>()</code>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[])">createSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop)</code>
+<div class="block">Creats SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[],%20int[])">createSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop,
+                      int[]&nbsp;step)</code>
+<div class="block">Creating SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#flip()">flip</a></strong>()</code>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#flip(int)">flip</a></strong>(int&nbsp;i)</code>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#getMaxShape()">getMaxShape</a></strong>()</code>
+<div class="block">Returns an array of maximals shapes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#getShape()">getShape</a></strong>()</code>
+<div class="block">Returns an array of resulting shapes (this can change if the start, stop,
+ step arrays are changed).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#getSourceShape()">getSourceShape</a></strong>()</code>
+<div class="block">Returns an array of shapes of the source Dataset (this can change for
+ dynamic Datasets).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#getStart()">getStart</a></strong>()</code>
+<div class="block">Returns an array of the starts values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#getStep()">getStep</a></strong>()</code>
+<div class="block">Returns an array of the steps values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#getStop()">getStop</a></strong>()</code>
+<div class="block">Returns an array of stops values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#isAll()">isAll</a></strong>()</code>
+<div class="block">Returns <code>true</code> if all of originals shapes are covered by positive
+ steps slices, else <code>false</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#isExpanded()">isExpanded</a></strong>()</code>
+<div class="block">Returns <code>true</code> if the slice makes shape larger, else <code>false</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#setSlice(int,%20java.lang.Integer,%20java.lang.Integer,%20int)">setSlice</a></strong>(int&nbsp;i,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop,
+                int&nbsp;step)</code>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#setSlice(int,%20int,%20int,%20int)">setSlice</a></strong>(int&nbsp;i,
+                int&nbsp;start,
+                int&nbsp;stop,
+                int&nbsp;step)</code>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#setSlice(int,%20org.eclipse.january.dataset.Slice)">setSlice</a></strong>(int&nbsp;i,
+                <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;slice)</code>
+<div class="block">Set slice for given dimension.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceND.html#toString()">toString</a></strong>()</code>
+<div class="block">Returns a string construction of the sliceND with the python form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SliceND(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.37">SliceND</a>(int[]&nbsp;shape)</pre>
+<div class="block">Construct a nD Slice for whole of shape.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()"><code>ILazyDataset.getShape()</code></a></dd></dl>
+</li>
+</ul>
+<a name="SliceND(int[], org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.57">SliceND</a>(int[]&nbsp;shape,
+       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()"><code>ILazyDataset.getShape()</code></a></dd><dd><code>slice</code> - Slice for each dimension of ND slice</dd></dl>
+</li>
+</ul>
+<a name="SliceND(int[], int[], org.eclipse.january.dataset.Slice...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.72">SliceND</a>(int[]&nbsp;shape,
+       int[]&nbsp;maxShape,
+       <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</pre>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()"><code>ILazyDataset.getShape()</code></a></dd><dd><code>maxShape,</code> - may be <code>null</code></dd><dd><code>slice</code> - Slice for each dimension of ND slice</dd></dl>
+</li>
+</ul>
+<a name="SliceND(int[], int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.123">SliceND</a>(int[]&nbsp;shape,
+       int[]&nbsp;start,
+       int[]&nbsp;stop,
+       int[]&nbsp;step)</pre>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()"><code>ILazyDataset.getShape()</code></a></dd><dd><code>start</code> - Array of starts points, may be <code>null</code></dd><dd><code>stop</code> - Array of stops points, may be <code>null</code></dd><dd><code>step</code> - Array of steps, may be <code>null</code></dd></dl>
+</li>
+</ul>
+<a name="SliceND(int[], int[], int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SliceND</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.144">SliceND</a>(int[]&nbsp;shape,
+       int[]&nbsp;maxShape,
+       int[]&nbsp;start,
+       int[]&nbsp;stop,
+       int[]&nbsp;step)</pre>
+<div class="block">Construct a nD Slice from parameters, if the maxShape is <code>null</code>, it
+ will be set to the maximum shape of the nD Slice, the start will be set
+ to 0, stop is by default equal to the entire size of the set, step is
+ defaultly set to 1.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Shape of the dataset, see <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#getShape()"><code>ILazyDataset.getShape()</code></a></dd><dd><code>maxShape</code> - Array of maximals shapes, may be <code>null</code></dd><dd><code>start</code> - Array of starts points, may be <code>null</code></dd><dd><code>stop</code> - Array of stops points, may be <code>null</code></dd><dd><code>step</code> - Array of steps, may be <code>null</code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setSlice(int, java.lang.Integer, java.lang.Integer, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.202">setSlice</a>(int&nbsp;i,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;start,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;stop,
+            int&nbsp;step)</pre>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - dimension</dd><dd><code>start</code> - Start point, may be <code>null</code> to imply start of dimension</dd><dd><code>stop</code> - Stop point, may be <code>null</code> to imply end of dimension</dd><dd><code>step</code> - Slice step</dd></dl>
+</li>
+</ul>
+<a name="setSlice(int, int, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.219">setSlice</a>(int&nbsp;i,
+            int&nbsp;start,
+            int&nbsp;stop,
+            int&nbsp;step)</pre>
+<div class="block">Set slice for given dimension, if the start is <code>null</code> it will be
+ set to 0, stop is by default equal to the entire size of the set.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - dimension</dd><dd><code>start</code> - Start point, may be <code>null</code> to imply start of dimension</dd><dd><code>stop</code> - Stop point, may be <code>null</code> to imply end of dimension</dd><dd><code>step</code> - Slice step</dd></dl>
+</li>
+</ul>
+<a name="setSlice(int, org.eclipse.january.dataset.Slice)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.232">setSlice</a>(int&nbsp;i,
+            <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;slice)</pre>
+<div class="block">Set slice for given dimension.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - Dimension</dd><dd><code>slice</code> - Slice with wanted properties to set</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="getSourceShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSourceShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.352">getSourceShape</a>()</pre>
+<div class="block">Returns an array of shapes of the source Dataset (this can change for
+ dynamic Datasets).</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>shape of source Dataset</dd></dl>
+</li>
+</ul>
+<a name="getMaxShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.361">getMaxShape</a>()</pre>
+<div class="block">Returns an array of maximals shapes</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>maximum shape</dd></dl>
+</li>
+</ul>
+<a name="isExpanded()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isExpanded</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.371">isExpanded</a>()</pre>
+<div class="block">Returns <code>true</code> if the slice makes shape larger, else <code>false</code>.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if slice makes shape larger, <code>false</code> in the
+         other case</dd></dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.381">getShape</a>()</pre>
+<div class="block">Returns an array of resulting shapes (this can change if the start, stop,
+ step arrays are changed).</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>resulting shape</dd></dl>
+</li>
+</ul>
+<a name="getStart()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStart</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.390">getStart</a>()</pre>
+<div class="block">Returns an array of the starts values.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>start values</dd></dl>
+</li>
+</ul>
+<a name="getStop()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStop</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.402">getStop</a>()</pre>
+<div class="block">Returns an array of stops values.
+ <p>
+ Note : stop values are clamped to -1 for <b>negative</b> steps
+ </p></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>stop values</dd></dl>
+</li>
+</ul>
+<a name="getStep()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStep</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.411">getStep</a>()</pre>
+<div class="block">Returns an array of the steps values.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>step values</dd></dl>
+</li>
+</ul>
+<a name="isAll()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isAll</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.422">isAll</a>()</pre>
+<div class="block">Returns <code>true</code> if all of originals shapes are covered by positive
+ steps slices, else <code>false</code>.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if all of originals shapes is covered by this slice
+         with positive steps, <code>false</code> in the other case.</dd></dl>
+</li>
+</ul>
+<a name="flip(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flip</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.447">flip</a>(int&nbsp;i)</pre>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - dimension to flip</dd></dl>
+</li>
+</ul>
+<a name="flip()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flip</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.468">flip</a>()</pre>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</li>
+</ul>
+<a name="convertToSlice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>convertToSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.482">convertToSlice</a>()</pre>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a Slice array</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.500">clone</a>()</pre>
+<div class="block">Creates a deep copy of the SliceND.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>New SliceND with the current SliceND properties</dd></dl>
+</li>
+</ul>
+<a name="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.518">toString</a>()</pre>
+<div class="block">Returns a string construction of the sliceND with the python form.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Constructed String of all Slices</dd></dl>
+</li>
+</ul>
+<a name="createSlice(org.eclipse.january.dataset.ILazyDataset, int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createSlice</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.543">createSlice</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                  int[]&nbsp;start,
+                  int[]&nbsp;stop)</pre>
+<div class="block">Creats SliceND from dataset.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - ILazyDataset to treat</dd><dd><code>start</code> - Array of starts indexes</dd><dd><code>stop</code> - Array of stops indexes</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Constructed SliceND</dd></dl>
+</li>
+</ul>
+<a name="createSlice(org.eclipse.january.dataset.ILazyDataset, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createSlice</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceND.html#line.560">createSlice</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                  int[]&nbsp;start,
+                  int[]&nbsp;stop,
+                  int[]&nbsp;step)</pre>
+<div class="block">Creating SliceND from dataset.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>data</code> - ILazyDataset to treat</dd><dd><code>start</code> - Array of starts indexes</dd><dd><code>stop</code> - Array of stops indexes</dd><dd><code>step</code> - Array of steps</dd>
+<dt><span class="strong">Returns:</span></dt><dd>Constructed SliceND</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SliceND.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceND.html" target="_top">Frames</a></li>
+<li><a href="SliceND.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/SliceNDIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/SliceNDIterator.html
new file mode 100644
index 0000000..8afd68f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/SliceNDIterator.html
@@ -0,0 +1,445 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SliceNDIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="SliceNDIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SliceNDIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceNDIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceNDIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class SliceNDIterator" class="title">Class SliceNDIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.SliceNDIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.20">SliceNDIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
+<div class="block"><p>Class to provide slice iteration through a dataset</p>
+ <p>It allows a number of axes to be omitted and iterates over
+ the axes left over.</p></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#SliceNDIterator(org.eclipse.january.dataset.SliceND,%20int...)">SliceNDIterator</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                              int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getCurrentSlice()">getCurrentSlice</a></strong>()</code>
+<div class="block">Get current slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOmit()">getOmit</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOmittedSlice()">getOmittedSlice</a></strong>()</code>
+<div class="block">Get omitted part of source slice which never changes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOutputSlice()">getOutputSlice</a></strong>()</code>
+<div class="block">Get output or destination slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getPos()">getPos</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getShape()">getShape</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getUsedPos()">getUsedPos</a></strong>()</code>
+<div class="block">Shortened position where axes are omitted</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#getUsedSlice()">getUsedSlice</a></strong>()</code>
+<div class="block">Shortened slice where axes are omitted</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#hasNext()">hasNext</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset iterator</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SliceNDIterator(org.eclipse.january.dataset.SliceND, int...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SliceNDIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.54">SliceNDIterator</a>(<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+               int...&nbsp;axes)</pre>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>slice</code> - </dd><dd><code>axes</code> - missing axes</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.125">hasNext</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if there is another iteration</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.163">getPos</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>position indices (nb this is reference not a copy so avoid changing and can be null)</dd></dl>
+</li>
+</ul>
+<a name="getOmittedSlice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOmittedSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.171">getOmittedSlice</a>()</pre>
+<div class="block">Get omitted part of source slice which never changes</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>slice (can be null)</dd></dl>
+</li>
+</ul>
+<a name="getOutputSlice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.179">getOutputSlice</a>()</pre>
+<div class="block">Get output or destination slice</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>slice</dd></dl>
+</li>
+</ul>
+<a name="getCurrentSlice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCurrentSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.187">getCurrentSlice</a>()</pre>
+<div class="block">Get current slice</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>slice</dd></dl>
+</li>
+</ul>
+<a name="getUsedPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsedPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.195">getUsedPos</a>()</pre>
+<div class="block">Shortened position where axes are omitted</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>used position</dd></dl>
+</li>
+</ul>
+<a name="getUsedSlice()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsedSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.203">getUsedSlice</a>()</pre>
+<div class="block">Shortened slice where axes are omitted</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>used slice</dd></dl>
+</li>
+</ul>
+<a name="getOmit()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOmit</h4>
+<pre>public&nbsp;boolean[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.210">getOmit</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>omit array - array where true means miss out</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.215">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">IndexIterator</a></code></strong></div>
+<div class="block">Reset iterator</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getShape()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getShape</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceNDIterator.html#line.269">getShape</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>shape of iterator (can be null, if not known or applicable)</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SliceNDIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceNDIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceNDIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/Stats.html b/apidocs/2.1.1/org/eclipse/january/dataset/Stats.html
new file mode 100644
index 0000000..1e893dc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/Stats.html
@@ -0,0 +1,889 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Stats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Stats (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Stats.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Stats.html" target="_top">Frames</a></li>
+<li><a href="Stats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class Stats" class="title">Class Stats</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.Stats</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.36">Stats</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Statistics class
+ 
+ TODO Where is mode? http://en.wikipedia.org/wiki/Mode_(statistics)</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#Stats()">Stats</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#averageDeviation(org.eclipse.january.dataset.Dataset)">averageDeviation</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset)">covariance</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    boolean&nbsp;rowvar,
+                    boolean&nbsp;bias,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">covariance</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                    boolean&nbsp;rowvar,
+                    boolean&nbsp;bias,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</code>
+<div class="block">Calculate the covariance matrix (array) of a concatenated with b.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  int&nbsp;axis,
+                                  boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeSum</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeSum</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset)">iqr</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset,%20int)">iqr</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+      int&nbsp;axis)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20boolean...)">kurtosis</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">kurtosis</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset)">median</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset,%20int)">median</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#outlierValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20double,%20double,%20int)">outlierValues</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;mask,
+                          boolean&nbsp;value,
+                          double&nbsp;lo,
+                          double&nbsp;hi,
+                          int&nbsp;length)</code>
+<div class="block">Calculate approximate outlier values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#outlierValues(org.eclipse.january.dataset.Dataset,%20double,%20double,%20int)">outlierValues</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          double&nbsp;lo,
+                          double&nbsp;hi,
+                          int&nbsp;length)</code>
+<div class="block">Calculate approximate outlier values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20boolean...)">product</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">product</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20double...)">quantile</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                double...&nbsp;values)</code>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20double)">quantile</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                double&nbsp;q)</code>
+<div class="block">Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20int,%20double...)">quantile</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                double...&nbsp;values)</code>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#residual(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">residual</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">The residual is the sum of squared differences</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20boolean...)">skewness</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">skewness</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#sum(org.eclipse.january.dataset.Dataset,%20boolean...)">sum</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">typedProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;dtype,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedProduct</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;dtype,
+                        int&nbsp;axis,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">typedSum</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;dtype,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedSum</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;dtype,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/Stats.html#weightedResidual(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">weightedResidual</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w)</code>
+<div class="block">The residual is the sum of squared differences</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Stats()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Stats</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.36">Stats</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="quantile(org.eclipse.january.dataset.Dataset, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>quantile</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.295">quantile</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              double&nbsp;q)</pre>
+<div class="block">Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>q</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>point at which CDF has value q</dd></dl>
+</li>
+</ul>
+<a name="quantile(org.eclipse.january.dataset.Dataset, double...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>quantile</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.315">quantile</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                double...&nbsp;values)</pre>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>values</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>points at which CDF has given values</dd></dl>
+</li>
+</ul>
+<a name="quantile(org.eclipse.january.dataset.Dataset, int, double...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>quantile</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.342">quantile</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 int&nbsp;axis,
+                 double...&nbsp;values)</pre>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - </dd><dd><code>values</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>points at which CDF has given values</dd></dl>
+</li>
+</ul>
+<a name="median(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>median</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.398">median</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+             int&nbsp;axis)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>median</dd></dl>
+</li>
+</ul>
+<a name="median(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>median</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.407">median</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>median</dd></dl>
+</li>
+</ul>
+<a name="iqr(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iqr</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.417">iqr</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">Interquartile range: Q3 - Q1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>range</dd></dl>
+</li>
+</ul>
+<a name="iqr(org.eclipse.january.dataset.Dataset, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iqr</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.439">iqr</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;axis)</pre>
+<div class="block">Interquartile range: Q3 - Q1</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>axis</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>range</dd></dl>
+</li>
+</ul>
+<a name="skewness(org.eclipse.january.dataset.Dataset, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>skewness</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.746">skewness</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>skewness</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="kurtosis(org.eclipse.january.dataset.Dataset, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>kurtosis</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.756">kurtosis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>kurtosis</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="skewness(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>skewness</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.767">skewness</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               int&nbsp;axis,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>skewness along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="kurtosis(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>kurtosis</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.779">kurtosis</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               int&nbsp;axis,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>kurtosis along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="sum(org.eclipse.january.dataset.Dataset, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sum</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.790">sum</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+         boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="typedSum(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedSum</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.801">typedSum</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              int&nbsp;dtype,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>dtype</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>typed sum of dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="typedSum(org.eclipse.january.dataset.Dataset, int, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedSum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.819">typedSum</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+               int&nbsp;dtype,
+               int&nbsp;axis,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>dtype</code> - </dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>typed sum of items along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="product(org.eclipse.january.dataset.Dataset, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.829">product</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+             boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product of all items in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="product(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>product</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.840">product</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product of items along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="typedProduct(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedProduct</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.851">typedProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  int&nbsp;dtype,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>dtype</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>typed product of all items in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="typedProduct(org.eclipse.january.dataset.Dataset, int, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>typedProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.972">typedProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                   int&nbsp;dtype,
+                   int&nbsp;axis,
+                   boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>dtype</code> - </dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>typed product of items along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="cumulativeProduct(org.eclipse.january.dataset.Dataset, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cumulativeProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1178">cumulativeProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>cumulative product of items in flattened dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="cumulativeProduct(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cumulativeProduct</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1189">cumulativeProduct</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;axis,
+                        boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>cumulative product of items along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="cumulativeSum(org.eclipse.january.dataset.Dataset, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cumulativeSum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1395">cumulativeSum</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>cumulative sum of items in flattened dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="cumulativeSum(org.eclipse.january.dataset.Dataset, int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cumulativeSum</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1406">cumulativeSum</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - dataset</dd><dd><code>axis</code> - </dd><dd><code>ignoreInvalids</code> - see <a href="../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)"><code>Dataset.max(int, boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>cumulative sum of items along axis in dataset</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="averageDeviation(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>averageDeviation</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1593">averageDeviation</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>average deviation value of all items the dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1629">residual</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<div class="block">The residual is the sum of squared differences</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>residual value</dd></dl>
+</li>
+</ul>
+<a name="weightedResidual(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>weightedResidual</h4>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1640">weightedResidual</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                      <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w)</pre>
+<div class="block">The residual is the sum of squared differences</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>b</code> - </dd><dd><code>w</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>residual value</dd></dl>
+</li>
+</ul>
+<a name="outlierValues(org.eclipse.january.dataset.Dataset, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outlierValues</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1660">outlierValues</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                     double&nbsp;lo,
+                     double&nbsp;hi,
+                     int&nbsp;length)</pre>
+<div class="block">Calculate approximate outlier values. These are defined as the values in the dataset
+ that are approximately below and above the given thresholds - in terms of percentages
+ of dataset size.
+ <p>
+ It approximates by limiting the number of items (given by length) used internally by
+ data structures - the larger this is, the more accurate will those outlier values become.
+ The actual thresholds used are returned in the array.
+ <p>
+ Also, the low and high values will be made distinct if possible by adjusting the thresholds</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>lo</code> - percentage threshold for lower limit</dd><dd><code>hi</code> - percentage threshold for higher limit</dd><dd><code>length</code> - maximum number of items used internally, if negative, then unlimited</dd>
+<dt><span class="strong">Returns:</span></dt><dd>double array with low and high values, and low and high percentage thresholds</dd></dl>
+</li>
+</ul>
+<a name="outlierValues(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean, double, double, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>outlierValues</h4>
+<pre>public static&nbsp;double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1683">outlierValues</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;mask,
+                     boolean&nbsp;value,
+                     double&nbsp;lo,
+                     double&nbsp;hi,
+                     int&nbsp;length)</pre>
+<div class="block">Calculate approximate outlier values. These are defined as the values in the dataset
+ that are approximately below and above the given thresholds - in terms of percentages
+ of dataset size.
+ <p>
+ It approximates by limiting the number of items (given by length) used internally by
+ data structures - the larger this is, the more accurate will those outlier values become.
+ The actual thresholds used are returned in the array.
+ <p>
+ Also, the low and high values will be made distinct if possible by adjusting the thresholds</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd><dd><code>mask</code> - can be null</dd><dd><code>value</code> - value of mask to match to include for calculation</dd><dd><code>lo</code> - percentage threshold for lower limit</dd><dd><code>hi</code> - percentage threshold for higher limit</dd><dd><code>length</code> - maximum number of items used internally, if negative, then unlimited</dd>
+<dt><span class="strong">Returns:</span></dt><dd>double array with low and high values, and low and high percentage thresholds</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="covariance(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>covariance</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1858">covariance</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</pre>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>covariance array of a</dd></dl>
+</li>
+</ul>
+<a name="covariance(org.eclipse.january.dataset.Dataset, boolean, boolean, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>covariance</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1868">covariance</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 boolean&nbsp;rowvar,
+                 boolean&nbsp;bias,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</pre>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>covariance array of a</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="covariance(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>covariance</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1878">covariance</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</pre>
+<div class="block">See <a href="../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>covariance array of a concatenated with b</dd></dl>
+</li>
+</ul>
+<a name="covariance(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.Dataset, boolean, boolean, java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>covariance</h4>
+<pre>public static&nbsp;<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/Stats.html#line.1893">covariance</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                 <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                 boolean&nbsp;rowvar,
+                 boolean&nbsp;bias,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</pre>
+<div class="block">Calculate the covariance matrix (array) of a concatenated with b. This 
+ method is directly based on the implementation in numpy (cov).</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - Array containing multiple variable and observations. Each row represents a variable, each column an observation.</dd><dd><code>b</code> - An extra set of variables and observations. Must be of same type as a and have a compatible shape.</dd><dd><code>rowvar</code> - When true (default), each row is a variable; when false each column is a variable.</dd><dd><code>bias</code> - Default normalisation is (N - 1) - N is number of observations. If set true, normalisation is (N).</dd><dd><code>ddof</code> - Default normalisation is (N - 1). If ddof is set, then normalisation is (N - ddof).</dd>
+<dt><span class="strong">Returns:</span></dt><dd>covariance array of a concatenated with b</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Stats.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/Stats.html" target="_top">Frames</a></li>
+<li><a href="Stats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/StrideIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/StrideIterator.html
new file mode 100644
index 0000000..865b234
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/StrideIterator.html
@@ -0,0 +1,490 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StrideIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="StrideIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StrideIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/StrideIterator.html" target="_top">Frames</a></li>
+<li><a href="StrideIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class StrideIterator" class="title">Class StrideIterator</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.SliceIterator</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.StrideIterator</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.21">StrideIterator</a>
+extends <a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></pre>
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int[])">StrideIterator</a></strong>(int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int[],%20int[])">StrideIterator</a></strong>(int[]&nbsp;shape,
+                            int[]&nbsp;strides)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int[],%20int[],%20int)">StrideIterator</a></strong>(int[]&nbsp;shape,
+                            int[]&nbsp;strides,
+                            int&nbsp;offset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[])">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int)">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape,
+                            int[]&nbsp;strides,
+                            int&nbsp;offset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int[],%20int[])">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape,
+                            int[]&nbsp;start,
+                            int[]&nbsp;stop,
+                            int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20int)">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape,
+                            int[]&nbsp;strides,
+                            int&nbsp;offset,
+                            int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20int[],%20int[],%20int[])">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape,
+                            int[]&nbsp;oStrides,
+                            int&nbsp;oOffset,
+                            int[]&nbsp;start,
+                            int[]&nbsp;stop,
+                            int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20org.eclipse.january.dataset.SliceND)">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape,
+                            int[]&nbsp;strides,
+                            int&nbsp;offset,
+                            <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#getPos()">getPos</a></strong>()</code>
+<div class="block">Returns the current position of the iterator.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#hasNext()">hasNext</a></strong>()</code>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StrideIterator.html#reset()">reset</a></strong>()</code>
+<div class="block">Reset the Iterator to the first Slice.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.SliceIterator">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart()">getStart</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep()">getStep</a>, <a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart(int...)">setStart</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="StrideIterator(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.28">StrideIterator</a>(int[]&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int, int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.32">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.36">StrideIterator</a>(int[]&nbsp;shape,
+              int[]&nbsp;strides)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int[], int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.40">StrideIterator</a>(int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int, int[], int[], int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.44">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int, int[], int[], int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.48">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset,
+              int&nbsp;element)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int, int[], int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.60">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;start,
+              int[]&nbsp;stop,
+              int[]&nbsp;step)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int, int[], int[], int, int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.64">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;oStrides,
+              int&nbsp;oOffset,
+              int[]&nbsp;start,
+              int[]&nbsp;stop,
+              int[]&nbsp;step)</pre>
+</li>
+</ul>
+<a name="StrideIterator(int, int[], int[], int, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StrideIterator</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.68">StrideIterator</a>(int&nbsp;isize,
+              int[]&nbsp;shape,
+              int[]&nbsp;strides,
+              int&nbsp;offset,
+              <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasNext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.120">hasNext</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext()">SliceIterator</a></code></strong></div>
+<div class="block">Returns <code>true</code> if there is an other element after the current
+ Slice.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Returns  if the iteration has more Slice, <code>false</code> in
+         the other case</dd></dl>
+</li>
+</ul>
+<a name="getPos()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.146">getPos</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos()">SliceIterator</a></code></strong></div>
+<div class="block">Returns the current position of the iterator.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Iterator current position</dd></dl>
+</li>
+</ul>
+<a name="reset()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>reset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StrideIterator.html#line.151">reset</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset()">SliceIterator</a></code></strong></div>
+<div class="block">Reset the Iterator to the first Slice.</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StrideIterator.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/StrideIterator.html" target="_top">Frames</a></li>
+<li><a href="StrideIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/StringDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/StringDataset.html
new file mode 100644
index 0000000..a23d13d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/StringDataset.html
@@ -0,0 +1,1313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:28 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="StringDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/StringDataset.html" target="_top">Frames</a></li>
+<li><a href="StringDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class StringDataset" class="title">Class StringDataset</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.StringDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.StringDataset</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.20">StringDataset</a>
+extends <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></pre>
+<div class="block">Extend dataset for objects</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.StringDataset">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#data">data</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDataset.html#residual(java.lang.Object)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#createArray(int)">createArray</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#equals(java.lang.Object)">equals</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fill(java.lang.Object)">fill</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get()">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int...)">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int)">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int,%20int)">get</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getAbs(int)">getAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBufferLength()">getBufferLength</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getData()">getData</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDType()">getDType</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt()">getInt</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject()">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int...)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int,%20int)">getObject</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObjectAbs(int)">getObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString()">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int...)">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int,%20int)">getString</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems()">getUniqueItems</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#hashCode()">hashCode</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#maxPos(boolean...)">maxPos</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#minPos(boolean...)">minPos</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#resize(int...)">resize</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object)">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int...)">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setAbs(int,%20java.lang.String)">setAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setData()">setData</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int...)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int,%20int)">setItem</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#sort(java.lang.Integer)">sort</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.66">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.74">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.79">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.112">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.117">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.122">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">getElementLongAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementLongAbs(int)">getElementLongAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.127">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble()">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.132">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.137">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int,%20int)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.142">getDouble</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getDouble(int...)">getDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int...)">getDouble</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.147">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat()">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.152">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.157">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int,%20int)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.162">getFloat</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getFloat(int...)">getFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int...)">getFloat</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.167">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong()">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.172">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong(int)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.177">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong(int,%20int)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.182">getLong</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getLong(int...)">getLong</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong(int...)">getLong</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.187">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt(int)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.192">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt(int,%20int)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.197">getInt</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getInt(int...)">getInt</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt(int...)">getInt</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.202">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort()">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.207">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort(int)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.212">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort(int,%20int)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.217">getShort</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getShort(int...)">getShort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort(int...)">getShort</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.222">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte()">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.227">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte(int)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.232">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte(int,%20int)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.237">getByte</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getByte(int...)">getByte</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte(int...)">getByte</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.242">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean()">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.247">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.252">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int,%20int)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.257">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int...)">getBoolean</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.262">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getStringAbs(int)">getStringAbs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.268">containsInfs</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsInfs()">containsInfs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInfs()">containsInfs</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.273">containsNans</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#containsNans()">containsNans</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsNans()">containsNans</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.278">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#iadd(java.lang.Object)">iadd</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.283">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.288">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.293">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#idivide(java.lang.Object)">idivide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.298">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.303">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#ifloor()">ifloor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.308">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#ipower(java.lang.Object)">ipower</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDataset.html#line.313">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o
+ See <a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20boolean)"><code>Dataset.residual(Object o, boolean ignoreNaNs)</code></a> with ignoreNaNs = false</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object)">residual</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringDataset.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/StringDataset.html" target="_top">Frames</a></li>
+<li><a href="StringDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.StringDatasetBase">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/StringDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/StringDatasetBase.html
new file mode 100644
index 0000000..1eb7880
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/StringDatasetBase.html
@@ -0,0 +1,1977 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="StringDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/StringDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="StringDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class StringDatasetBase" class="title">Class StringDatasetBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.StringDatasetBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>, <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, <a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.29">StringDatasetBase</a>
+extends <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></pre>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.dataset.StringDatasetBase">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#data">data</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_CLOSE">BLOCK_CLOSE</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#BLOCK_OPEN">BLOCK_OPEN</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#odata">odata</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#offset">offset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#size">size</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stride">stride</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stringFormat">stringFormat</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#catchExceptions">catchExceptions</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#logger">logger</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#name">name</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#shape">shape</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT32">ARRAYFLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYFLOAT64">ARRAYFLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT16">ARRAYINT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT32">ARRAYINT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT64">ARRAYINT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYINT8">ARRAYINT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#ARRAYMUL">ARRAYMUL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#BOOL">BOOL</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX">COMPLEX</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX128">COMPLEX128</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#COMPLEX64">COMPLEX64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#DATE">DATE</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT">FLOAT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT32">FLOAT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#FLOAT64">FLOAT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT">INT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT16">INT16</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT32">INT32</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT64">INT64</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#INT8">INT8</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#OBJECT">OBJECT</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#RGB">RGB</a>, <a href="../../../../org/eclipse/january/dataset/Dataset.html#STRING">STRING</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInfs()">containsInfs</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsInvalidNumbers()">containsInvalidNumbers</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#containsNans()">containsNans</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#createArray(int)">createArray</a></strong>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get()">get</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int...)">get</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int)">get</a></strong>(int&nbsp;i)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#get(int,%20int)">get</a></strong>(int&nbsp;i,
+      int&nbsp;j)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getAbs(int)">getAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get a value from an absolute index of the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean()">getBoolean</a></strong>()</code>
+<div class="block">Get first item as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int...)">getBoolean</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int)">getBoolean</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBoolean(int,%20int)">getBoolean</a></strong>(int&nbsp;i,
+                    int&nbsp;j)</code>
+<div class="block">Get an item from given position as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getBufferLength()">getBufferLength</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte()">getByte</a></strong>()</code>
+<div class="block">Get first item as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte(int...)">getByte</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte(int)">getByte</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a byte.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>byte</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getByte(int,%20int)">getByte</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given positionj as a byte.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getData()">getData</a></strong>()</code>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble()">getDouble</a></strong>()</code>
+<div class="block">Get first item as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int...)">getDouble</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int)">getDouble</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDouble(int,%20int)">getDouble</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a double.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getDType()">getDType</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementBooleanAbs(int)">getElementBooleanAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a boolean.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementDoubleAbs(int)">getElementDoubleAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a double.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getElementLongAbs(int)">getElementLongAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an element from given absolute index as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat()">getFloat</a></strong>()</code>
+<div class="block">Get first item as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int...)">getFloat</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int)">getFloat</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>float</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getFloat(int,%20int)">getFloat</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a float.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt()">getInt</a></strong>()</code>
+<div class="block">Get first item as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt(int...)">getInt</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt(int)">getInt</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getInt(int,%20int)">getInt</a></strong>(int&nbsp;i,
+            int&nbsp;j)</code>
+<div class="block">Get an item from given position as an int.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong()">getLong</a></strong>()</code>
+<div class="block">Get first item as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong(int...)">getLong</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong(int)">getLong</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getLong(int,%20int)">getLong</a></strong>(int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Get an item from given position as a long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject()">getObject</a></strong>()</code>
+<div class="block">Get first item as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int...)">getObject</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int)">getObject</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObject(int,%20int)">getObject</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getObjectAbs(int)">getObjectAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort()">getShort</a></strong>()</code>
+<div class="block">Get first item as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort(int...)">getShort</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort(int)">getShort</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>short</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getShort(int,%20int)">getShort</a></strong>(int&nbsp;i,
+                int&nbsp;j)</code>
+<div class="block">Get an item from given position as a short.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString()">getString</a></strong>()</code>
+<div class="block">Get first item as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int...)">getString</a></strong>(int...&nbsp;pos)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int)">getString</a></strong>(int&nbsp;i)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getString(int,%20int)">getString</a></strong>(int&nbsp;i,
+                  int&nbsp;j)</code>
+<div class="block">Get an item from given position as a string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getStringAbs(int)">getStringAbs</a></strong>(int&nbsp;index)</code>
+<div class="block">Get an item from given absolute index as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#maxPos(boolean...)">maxPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#minPos(boolean...)">minPos</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#resize(int...)">resize</a></strong>(int...&nbsp;newShape)</code>
+<div class="block">Change shape and size of dataset in-place</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set the value given by object at the first position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int...)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int...&nbsp;pos)</code>
+<div class="block">Set the value given by object at given position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#set(java.lang.Object,%20int,%20int)">set</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+      int&nbsp;i,
+      int&nbsp;j)</code>
+<div class="block">Set the value given by object at given position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setAbs(int,%20java.lang.String)">setAbs</a></strong>(int&nbsp;index,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;val)</code>
+<div class="block">Set a value at absolute index in the internal array.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setData()">setData</a></strong>()</code>
+<div class="block">Set aliased data as base data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value at first point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int...)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+              int...&nbsp;pos)</code>
+<div class="block">Sets the value at a particular point to the passed value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+              int&nbsp;i)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItem(java.lang.String,%20int,%20int)">setItem</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+              int&nbsp;i,
+              int&nbsp;j)</code>
+<div class="block">Sets the value at a particular point to the passed value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></strong>(int&nbsp;dindex,
+                          int&nbsp;sindex,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set item from compatible dataset in a direct and speedy way.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">setItemsOnAxes</a></strong>(int[]&nbsp;pos,
+                            boolean[]&nbsp;axes,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</code>
+<div class="block">Set content on axes in given position to values in array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setObjectAbs(int,%20java.lang.Object)">setObjectAbs</a></strong>(int&nbsp;index,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Set an item at absolute index from an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all()">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any()">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#calcSteps(double,%20double,%20double)">calcSteps</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkAxis(int,%20int)">checkAxis</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(int,%20int[],%20int[],%20int,%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#fillData(java.lang.Object,%20int,%20int[])">fillData</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int...)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndex(int,%20int)">get1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#get1DIndexFromShape(int[],%20int[])">get1DIndexFromShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()">getBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementClass()">getElementClass</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getElementsPerItem()">getElementsPerItem</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError()">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int...)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getError(int,%20int)">getError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int...)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorArray(int,%20int)">getErrorArray</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getFirst1DIndex()">getFirst1DIndex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getItemBytes()">getItemBytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMaxLineLength()">getMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getName()">getName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNbytes()">getNbytes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getNDPosition(int)">getNDPosition</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getOffset()">getOffset</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRank()">getRank</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShape()">getShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getShapeRef()">getShapeRef</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSize()">getSize</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStrides()">getStrides</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hasFloatingPointElements()">hasFloatingPointElements</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#isComplex()">isComplex</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#overrideInternal(java.io.Serializable,%20int...)">overrideInternal</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#residual(java.lang.Object,%20boolean)">residual</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setErrorBuffer(java.io.Serializable)">setErrorBuffer</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setMaxLineLength(int)">setMaxLineLength</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setName(java.lang.String)">setName</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setShape(int...)">setShape</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setStringFormat(java.text.Format)">setStringFormat</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation()">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString()">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#toString(boolean)">toString</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance()">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(boolean,%20boolean...)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a>, <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#checkPermutatedAxes(int[],%20int...)">checkPermutatedAxes</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#dirtyMetadata()">dirtyMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#reshapeMetadata(int[],%20int[])">reshapeMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setDirty()">setDirty</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a>, <a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#transposeMetadata(int[])">transposeMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.Dataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setDirty()">setDirty</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.ILazyDataset">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#hasErrors()">hasErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setErrors(java.io.Serializable)">setErrors</a>, <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.dataset.IMetadataProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a>, <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="data">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>data</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.33">data</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setData</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.36">setData</a>()</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">AbstractDataset</a></code></strong></div>
+<div class="block">Set aliased data as base data</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setData()">setData</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createArray(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createArray</h4>
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.40">createArray</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="getDType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDType</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.55">getDType</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDType()">getDType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getDType()">getDType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>type of dataset item</dd></dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.157">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.179">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.184">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">ILazyDataset</a></code></strong></div>
+<div class="block">Clone dataset</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>a (shallow) copy of dataset</dd></dl>
+</li>
+</ul>
+<a name="fill(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fill</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.225">fill</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Fill dataset with given object</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>filled dataset with each item being equal to the given object</dd></dl>
+</li>
+</ul>
+<a name="getData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getData</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.240">getData</a>()</pre>
+<div class="block">This is a typed version of <a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBuffer()"><code>AbstractDataset.getBuffer()</code></a></div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>data buffer as linear array</dd></dl>
+</li>
+</ul>
+<a name="getBufferLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBufferLength</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.245">getBufferLength</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getBufferLength()">getBufferLength</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>entire buffer length</dd></dl>
+</li>
+</ul>
+<a name="getView(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.252">getView</a>(boolean&nbsp;deepCopyMetadata)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>deepCopyMetadata</code> - if true then deep-copy metadata</dd>
+<dt><span class="strong">Returns:</span></dt><dd>whole view of dataset (i.e. data buffer is shared)</dd></dl>
+</li>
+</ul>
+<a name="getAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.267">getAbs</a>(int&nbsp;index)</pre>
+<div class="block">Get a value from an absolute index of the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd></dl>
+</li>
+</ul>
+<a name="getElementBooleanAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementBooleanAbs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.272">getElementBooleanAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementBooleanAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a boolean. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as boolean</dd></dl>
+</li>
+</ul>
+<a name="getElementDoubleAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementDoubleAbs</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.277">getElementDoubleAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementDoubleAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a double. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as double</dd></dl>
+</li>
+</ul>
+<a name="getElementLongAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getElementLongAbs</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.282">getElementLongAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getElementLongAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an element from given absolute index as a long. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>element as long</dd></dl>
+</li>
+</ul>
+<a name="getObjectAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.287">getObjectAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObjectAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as an object. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getStringAbs(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringAbs</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.292">getStringAbs</a>(int&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getStringAbs(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given absolute index as a string. See warning in interface doc</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="setAbs(int, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.306">setAbs</a>(int&nbsp;index,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;val)</pre>
+<div class="block">Set a value at absolute index in the internal array. This is an internal method with no checks so can be
+ dangerous. Use with care or ideally with an iterator.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - absolute index</dd><dd><code>val</code> - new value</dd></dl>
+</li>
+</ul>
+<a name="setItemDirect(int, int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemDirect</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.312">setItemDirect</a>(int&nbsp;dindex,
+                 int&nbsp;sindex,
+                 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">AbstractDataset</a></code></strong></div>
+<div class="block">Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#setItemDirect(int,%20int,%20java.lang.Object)">setItemDirect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dd><code>src</code> - is the source data buffer</dd></dl>
+</li>
+</ul>
+<a name="setObjectAbs(int, java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjectAbs</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.319">setObjectAbs</a>(int&nbsp;index,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setObjectAbs(int,%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set an item at absolute index from an object. See warning in interface doc</div>
+</li>
+</ul>
+<a name="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.331">get</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item in first position</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="get(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.339">get</a>(int&nbsp;i)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.348">get</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>i</code> - </dd><dd><code>j</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="get(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.356">get</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>item in given position</dd></dl>
+</li>
+</ul>
+<a name="getObject()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.361">getObject</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an object. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.366">getObject</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.371">getObject</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getObject(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an object. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getObject(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObject</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.376">getObject</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an object</dd></dl>
+</li>
+</ul>
+<a name="getString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.381">getString</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a string. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.386">getString</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.391">getString</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getString(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a string. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getString(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.396">getString</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a string</dd></dl>
+</li>
+</ul>
+<a name="getDouble()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.401">getDouble</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a double. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.406">getDouble</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.411">getDouble</a>(int&nbsp;i,
+               int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getDouble(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a double. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getDouble(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDouble</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.416">getDouble</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a double</dd></dl>
+</li>
+</ul>
+<a name="getFloat()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.421">getFloat</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a float. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.426">getFloat</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.431">getFloat</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getFloat(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a float. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getFloat(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFloat</h4>
+<pre>public&nbsp;float&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.436">getFloat</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a float</dd></dl>
+</li>
+</ul>
+<a name="getLong()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.441">getLong</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a long. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.446">getLong</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.451">getLong</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getLong(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a long. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getLong(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLong</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.456">getLong</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a long</dd></dl>
+</li>
+</ul>
+<a name="getInt()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.461">getInt</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt()">Dataset</a></code></strong></div>
+<div class="block">Get first item as an int. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.466">getInt</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.471">getInt</a>(int&nbsp;i,
+         int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getInt(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as an int. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getInt(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.476">getInt</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as an int</dd></dl>
+</li>
+</ul>
+<a name="getShort()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.481">getShort</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a short. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.486">getShort</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.491">getShort</a>(int&nbsp;i,
+             int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getShort(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a short. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getShort(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getShort</h4>
+<pre>public&nbsp;short&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.496">getShort</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a short</dd></dl>
+</li>
+</ul>
+<a name="getByte()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.501">getByte</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a byte. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.506">getByte</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a byte. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.511">getByte</a>(int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getByte(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given positionj as a byte. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getByte(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getByte</h4>
+<pre>public&nbsp;byte&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.516">getByte</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a byte</dd></dl>
+</li>
+</ul>
+<a name="getBoolean()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.521">getBoolean</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean()">Dataset</a></code></strong></div>
+<div class="block">Get first item as a boolean. The dataset must not be null</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.526">getBoolean</a>(int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 1D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.531">getBoolean</a>(int&nbsp;i,
+                 int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getBoolean(int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Get an item from given position as a boolean. The dataset must be 2D</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>item</dd></dl>
+</li>
+</ul>
+<a name="getBoolean(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.536">getBoolean</a>(int...&nbsp;pos)</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>Item in given position as a boolean</dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.546">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value at first point to the passed value. The dataset must not be null</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.String, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.556">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+           int&nbsp;i)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 1D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.String, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.567">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+           int&nbsp;i,
+           int&nbsp;j)</pre>
+<div class="block">Sets the value at a particular point to the passed value. The dataset must be 2D</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>i</code> - </dd><dd><code>j</code> - </dd></dl>
+</li>
+</ul>
+<a name="setItem(java.lang.String, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItem</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.577">setItem</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+           int...&nbsp;pos)</pre>
+<div class="block">Sets the value at a particular point to the passed value</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - </dd><dd><code>pos</code> - </dd></dl>
+</li>
+</ul>
+<a name="set(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.582">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at the first position. The dataset must not be null</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.587">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 1D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int, int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.592">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int&nbsp;i,
+       int&nbsp;j)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#set(java.lang.Object,%20int,%20int)">Dataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position. The dataset must be 2D</div>
+</li>
+</ul>
+<a name="set(java.lang.Object, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>set</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.597">set</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+       int...&nbsp;pos)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#set(java.lang.Object,%20int...)">IDataset</a></code></strong></div>
+<div class="block">Set the value given by object at given position</div>
+</li>
+</ul>
+<a name="resize(int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.606">resize</a>(int...&nbsp;newShape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IDataset.html#resize(int...)">IDataset</a></code></strong></div>
+<div class="block">Change shape and size of dataset in-place</div>
+</li>
+</ul>
+<a name="sort(java.lang.Integer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.630">sort</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">Dataset</a></code></strong></div>
+<div class="block">In-place sort of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axis</code> - to sort along. If null, then the flattened view is sorted</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sorted dataset</dd></dl>
+</li>
+</ul>
+<a name="getUniqueItems()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUniqueItems</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.657">getUniqueItems</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">Dataset</a></code></strong></div>
+<div class="block">Get unique items</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a sorted dataset of unique items</dd></dl>
+</li>
+</ul>
+<a name="getSlice(org.eclipse.january.dataset.SliceIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.674">getSlice</a>(<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</pre>
+<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">AbstractDataset</a></code></strong></div>
+<div class="block">Get a slice of the dataset. The returned dataset is a copied selection of items</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>siter</code> - Slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset of the sliced data</dd></dl>
+</li>
+</ul>
+<a name="fillDataset(org.eclipse.january.dataset.Dataset, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fillDataset</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.686">fillDataset</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+               <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">Dataset</a></code></strong></div>
+<div class="block">Populate another dataset with part of current dataset</div>
+<dl><dd><code>iter</code> - over current dataset</dd></dl>
+</li>
+</ul>
+<a name="setByBoolean(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByBoolean</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.698">setByBoolean</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>selection</code> - a boolean dataset of same shape to use for selecting items</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setBy1DIndex(java.lang.Object, org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setBy1DIndex</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.726">setBy1DIndex</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                             <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>index</code> - an integer dataset</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setByIndexes(java.lang.Object, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setByIndexes</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.753">setByIndexes</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                             <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">Dataset</a></code></strong></div>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the selected items</dd><dd><code>indexes</code> - an array of integer dataset, boolean dataset, slices or null entries (same as
+            full slices)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with modified content</dd></dl>
+</li>
+</ul>
+<a name="setSlice(java.lang.Object, org.eclipse.january.dataset.IndexIterator)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.792">setSlice</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                         <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>obj</code> - specifies the object used to set the specified slice</dd><dd><code>siter</code> - specifies the slice iterator</dd>
+<dt><span class="strong">Returns:</span></dt><dd>The dataset with the sliced set to object</dd></dl>
+</li>
+</ul>
+<a name="copyItemsFromAxes(int[], boolean[], org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyItemsFromAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.832">copyItemsFromAxes</a>(int[]&nbsp;pos,
+                     boolean[]&nbsp;axes,
+                     <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">Dataset</a></code></strong></div>
+<div class="block">Copy content from axes in given position to array</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>pos</code> - - null means position at origin</dd><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="setItemsOnAxes(int[], boolean[], java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setItemsOnAxes</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.851">setItemsOnAxes</a>(int[]&nbsp;pos,
+                  boolean[]&nbsp;axes,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;src)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#setItemsOnAxes(int[],%20boolean[],%20java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">Set content on axes in given position to values in array</div>
+<dl><dd><code>axes</code> - - true means copy</dd></dl>
+</li>
+</ul>
+<a name="maxPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.882">maxPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of maximum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="minPos(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>minPos</h4>
+<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.898">minPos</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - see <a href="../../../../org/eclipse/january/dataset/IDataset.html#max(boolean...)"><code>IDataset.max(boolean...)</code></a></dd>
+<dt><span class="strong">Returns:</span></dt><dd>Position of minimum value (or first position if there are more than one)</dd></dl>
+</li>
+</ul>
+<a name="containsNans()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsNans</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.914">containsNans</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs</dd></dl>
+</li>
+</ul>
+<a name="containsInfs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInfs</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.919">containsInfs</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any infinities</dd></dl>
+</li>
+</ul>
+<a name="containsInvalidNumbers()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsInvalidNumbers</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.924">containsInvalidNumbers</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset contains any NaNs or infinities</dd></dl>
+</li>
+</ul>
+<a name="iadd(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iadd</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.929">iadd</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place addition with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>sum dataset</dd></dl>
+</li>
+</ul>
+<a name="isubtract(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isubtract</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.934">isubtract</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place subtraction with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>difference dataset</dd></dl>
+</li>
+</ul>
+<a name="imultiply(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>imultiply</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.939">imultiply</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place multiplication with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>product dataset</dd></dl>
+</li>
+</ul>
+<a name="idivide(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>idivide</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.944">idivide</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place division with object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>dividend dataset</dd></dl>
+</li>
+</ul>
+<a name="ifloor()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ifloor</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.949">ifloor</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">Dataset</a></code></strong></div>
+<div class="block">In-place floor</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>floored dataset</dd></dl>
+</li>
+</ul>
+<a name="iremainder(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>iremainder</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.954">iremainder</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place remainder</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>remaindered dataset</dd></dl>
+</li>
+</ul>
+<a name="ipower(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ipower</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.959">ipower</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">Dataset</a></code></strong></div>
+<div class="block">In-place raise to power of object o</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>raised dataset</dd></dl>
+</li>
+</ul>
+<a name="residual(java.lang.Object, org.eclipse.january.dataset.Dataset, boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>residual</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/StringDatasetBase.html#line.964">residual</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+              boolean&nbsp;ignoreNaNs)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">Dataset</a></code></strong></div>
+<div class="block">Calculate residual of dataset with object o and weight. The weight is used to multiply
+ the squared differences</div>
+<dl><dd><code>ignoreNaNs</code> - if true, skip NaNs</dd>
+<dt><span class="strong">Returns:</span></dt><dd>sum of the squares of the differences</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringDatasetBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/StringDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="StringDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/UnaryOperation.Stub.html b/apidocs/2.1.1/org/eclipse/january/dataset/UnaryOperation.Stub.html
new file mode 100644
index 0000000..d933d5f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/UnaryOperation.Stub.html
@@ -0,0 +1,367 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="UnaryOperation.Stub (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnaryOperation.Stub.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/UnaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Class UnaryOperation.Stub" class="title">Class UnaryOperation.Stub</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.dataset.UnaryOperation.Stub</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a>, <a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.57">UnaryOperation.Stub</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></pre>
+<div class="block">Stub class where only two methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)"><code>complexOperate(double[], double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)"><code>toString(String)</code></a></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.january.dataset.UnaryOperation">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></h3>
+<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#UnaryOperation.Stub()">UnaryOperation.Stub</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#booleanOperate(long)">booleanOperate</a></strong>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia)</code>
+<div class="block">Override this</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#doubleOperate(double)">doubleOperate</a></strong>(double&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#longOperate(long)">longOperate</a></strong>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</code>
+<div class="block">Override this</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UnaryOperation.Stub()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UnaryOperation.Stub</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.57">UnaryOperation.Stub</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="doubleOperate(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.61">doubleOperate</a>(double&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#doubleOperate(double)">doubleOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)a</dd></dl>
+</li>
+</ul>
+<a name="booleanOperate(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.67">booleanOperate</a>(long&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#booleanOperate(long)">booleanOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.72">longOperate</a>(long&nbsp;a)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#longOperate(long)">longOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.80">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia)</pre>
+<div class="block">Override this</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#complexOperate(double[],%20double,%20double)">complexOperate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds op(ra, ia)</dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html#line.87">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</pre>
+<div class="block">Override this</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#toString(java.lang.String)">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnaryOperation.Stub.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/UnaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/UnaryOperation.html b/apidocs/2.1.1/org/eclipse/january/dataset/UnaryOperation.html
new file mode 100644
index 0000000..8a28f27
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/UnaryOperation.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="UnaryOperation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnaryOperation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/UnaryOperation.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.dataset</div>
+<h2 title="Interface UnaryOperation" class="title">Interface UnaryOperation</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a>, <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.19">UnaryOperation</a>
+extends <a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></pre>
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested_class_summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></strong></code>
+<div class="block">Stub class where only two methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)"><code>UnaryOperation.Stub.complexOperate(double[], double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)"><code>UnaryOperation.Stub.toString(String)</code></a></div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#booleanOperate(long)">booleanOperate</a></strong>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#complexOperate(double[],%20double,%20double)">complexOperate</a></strong>(double[]&nbsp;out,
+                            double&nbsp;ra,
+                            double&nbsp;ia)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#doubleOperate(double)">doubleOperate</a></strong>(double&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#longOperate(long)">longOperate</a></strong>(long&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html#toString(java.lang.String)">toString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="booleanOperate(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>booleanOperate</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.25">booleanOperate</a>(long&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)</dd></dl>
+</li>
+</ul>
+<a name="longOperate(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>longOperate</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.31">longOperate</a>(long&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)</dd></dl>
+</li>
+</ul>
+<a name="doubleOperate(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doubleOperate</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.37">doubleOperate</a>(double&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>op(a)a</dd></dl>
+</li>
+</ul>
+<a name="complexOperate(double[], double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>complexOperate</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.44">complexOperate</a>(double[]&nbsp;out,
+                  double&nbsp;ra,
+                  double&nbsp;ia)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - holds op(ra, ia)</dd><dd><code>ra</code> - </dd><dd><code>ia</code> - </dd></dl>
+</li>
+</ul>
+<a name="toString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/UnaryOperation.html#line.50">toString</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;a)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>a</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>string to represent output</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnaryOperation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/UnaryOperation.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested_class_summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html
new file mode 100644
index 0000000..943c200
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.AbstractCompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.AbstractCompoundDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractCompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.AbstractCompoundDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.AbstractCompoundDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractCompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AbstractDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AbstractDataset.html
new file mode 100644
index 0000000..c0b3d26
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AbstractDataset.html
@@ -0,0 +1,347 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.AbstractDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.AbstractDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/AbstractDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.AbstractDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.AbstractDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#base">base</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;orig,
+                    <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;view,
+                    boolean&nbsp;clone,
+                    boolean&nbsp;cloneMetadata)</code>
+<div class="block">Copy fields from original to view</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/AbstractDataset.html" target="_top">Frames</a></li>
+<li><a href="AbstractDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AggregateDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AggregateDataset.html
new file mode 100644
index 0000000..50955a2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/AggregateDataset.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.AggregateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.AggregateDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/AggregateDataset.html" target="_top">Frames</a></li>
+<li><a href="AggregateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.AggregateDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.AggregateDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#base">base</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/AggregateDataset.html" target="_top">Frames</a></li>
+<li><a href="AggregateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html
new file mode 100644
index 0000000..92d69b5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BinaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BinaryOperation.Stub (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BinaryOperation.Stub" class="title">Uses of Class<br>org.eclipse.january.dataset.BinaryOperation.Stub</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></strong></code>
+<div class="block">Exponentiation with boolean and</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BinaryOperation.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BinaryOperation.html
new file mode 100644
index 0000000..3614f36
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BinaryOperation.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.BinaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.BinaryOperation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BinaryOperation.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.BinaryOperation" class="title">Uses of Interface<br>org.eclipse.january.dataset.BinaryOperation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></strong></code>
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></strong></code>
+<div class="block">Addition with boolean or</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></strong></code>
+<div class="block">Division with boolean and of negated second operand</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></strong></code>
+<div class="block">Exponentiation with boolean and</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></strong></code>
+<div class="block">Select maximum of a and b</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></strong></code>
+<div class="block">Select minimum of a and b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></strong></code>
+<div class="block">Multiplication with boolean and</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></strong></code>
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></strong></code>
+<div class="block">Subtraction with boolean or of negated second operand</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></strong></code>
+<div class="block">Use given value if a == b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a >= b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></strong></code>
+<div class="block">Use given value if a < b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a <= b else use a</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Operations.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.BinaryOperation,%20java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BinaryOperation.html" target="_top">Frames</a></li>
+<li><a href="BinaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html
new file mode 100644
index 0000000..d360243
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanBroadcastIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanBroadcastIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanBroadcastIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BooleanBroadcastIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html
new file mode 100644
index 0000000..9b144d8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanContiguousIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanContiguousIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanContiguousIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BooleanContiguousIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanDataset.html
new file mode 100644
index 0000000..12450d1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanDataset.html
@@ -0,0 +1,595 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanDataset.html" target="_top">Frames</a></li>
+<li><a href="BooleanDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#all(int)">all</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#allTrue(org.eclipse.january.dataset.IDataset,%20int)">allTrue</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+              int&nbsp;axis)</code>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20double,%20double)">almostEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                          <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                          double&nbsp;relTolerance,
+                          double&nbsp;absTolerance)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20double,%20double)">almostEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                          double&nbsp;relTolerance,
+                          double&nbsp;absTolerance)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#any(int)">any</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue(org.eclipse.january.dataset.IDataset,%20int)">anyTrue</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+              int&nbsp;axis)</code>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object)">equalTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">equalTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object)">greaterThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object)">greaterThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                        <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">OR</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">AND</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object)">isFinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isFinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object)">isInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object)">isNaN</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNaN</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object)">isNegativeInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNegativeInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object)">isPositiveInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isPositiveInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">XOR</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object)">lessThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object)">lessThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                  <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object)">logicalAnd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalAnd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object)">logicalNot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Negate item-wise</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalNot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Negate item-wise</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object)">logicalOr</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalOr</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                  <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object)">logicalXor</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalXor</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20java.lang.Number,%20java.lang.Number)">withinRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20java.lang.Number,%20java.lang.Number)">withinRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#almostEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20double,%20double)">almostEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                          <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                          double&nbsp;relTolerance,
+                          double&nbsp;absTolerance)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#equalTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">equalTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is equal b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is greater than b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#greaterThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">greaterThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                        <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is greater than or equal to b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isFinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isFinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNaN(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNaN</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are Not-a-Numbers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isNegativeInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isNegativeInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are negative infinite</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isPositiveInfinite(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">isPositiveInfinite</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Check item-wise for whether any a's elements are positive infinite</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThan(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThan</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is less than b's</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#lessThanOrEqualTo(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">lessThanOrEqualTo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                                  <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's element is less than or equal to b's</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalAnd(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalAnd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true and b's true too.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalNot(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalNot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Negate item-wise</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalOr(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalOr</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                  <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#logicalXor(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset)">logicalXor</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                    <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o)</code>
+<div class="block">Compare item-wise for whether a's item is true or b's true exclusively.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset[],%20java.lang.Object[],%20java.lang.Object)">select</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>[]&nbsp;conditions,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;def)</code>
+<div class="block">Select content from choices where condition is true, otherwise use default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset,%20java.lang.Object,%20java.lang.Object)">select</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;condition,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;x,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;y)</code>
+<div class="block">Select content according where condition is true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#withinRange(java.lang.Object,%20org.eclipse.january.dataset.BooleanDataset,%20java.lang.Number,%20java.lang.Number)">withinRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;o,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;lo,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;hi)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanDataset.html" target="_top">Frames</a></li>
+<li><a href="BooleanDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html
new file mode 100644
index 0000000..281c898
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanDatasetBase.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="BooleanDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanDatasetBase" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanDatasetBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="BooleanDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanIterator.html
new file mode 100644
index 0000000..d5b7856
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanIterator.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanIterator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></strong></code>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(boolean&nbsp;v,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a></strong>(boolean&nbsp;v,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                    boolean&nbsp;value)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                    boolean&nbsp;value)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanNullIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanNullIterator.html
new file mode 100644
index 0000000..7f6c286
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BooleanNullIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BooleanNullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BooleanNullIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BooleanNullIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BooleanNullIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BooleanNullIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BooleanNullIterator.html" target="_top">Frames</a></li>
+<li><a href="BooleanNullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastIterator.html
new file mode 100644
index 0000000..5fa1cb9
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastIterator.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BroadcastIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BroadcastIterator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html
new file mode 100644
index 0000000..0342b6c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BroadcastIteratorBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastIteratorBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIteratorBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BroadcastIteratorBase" class="title">Uses of Class<br>org.eclipse.january.dataset.BroadcastIteratorBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></strong></code>
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></strong></code>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html" target="_top">Frames</a></li>
+<li><a href="BroadcastIteratorBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html
new file mode 100644
index 0000000..606f693
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastPairIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BroadcastPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastPairIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastPairIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BroadcastPairIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BroadcastPairIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BroadcastPairIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastPairIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html
new file mode 100644
index 0000000..e3ead67
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BroadcastSelfIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastSelfIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSelfIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BroadcastSelfIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BroadcastSelfIterator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastSelfIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSelfIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html
new file mode 100644
index 0000000..acc3106
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BroadcastSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastSingleIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BroadcastSingleIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.BroadcastSingleIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BroadcastSingleIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="BroadcastSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastUtils.html
new file mode 100644
index 0000000..bd6a204
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/BroadcastUtils.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.BroadcastUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.BroadcastUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastUtils.html" target="_top">Frames</a></li>
+<li><a href="BroadcastUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.BroadcastUtils" class="title">Uses of Class<br>org.eclipse.january.dataset.BroadcastUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.BroadcastUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/BroadcastUtils.html" target="_top">Frames</a></li>
+<li><a href="BroadcastUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ByteDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ByteDataset.html
new file mode 100644
index 0000000..5acf6db
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ByteDataset.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ByteDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ByteDataset.html" target="_top">Frames</a></li>
+<li><a href="ByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ByteDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.ByteDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ByteDataset.html" target="_top">Frames</a></li>
+<li><a href="ByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CollectionStats.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CollectionStats.html
new file mode 100644
index 0000000..fcb6614
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CollectionStats.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CollectionStats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CollectionStats (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CollectionStats.html" target="_top">Frames</a></li>
+<li><a href="CollectionStats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CollectionStats" class="title">Uses of Class<br>org.eclipse.january.dataset.CollectionStats</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.CollectionStats</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CollectionStats.html" target="_top">Frames</a></li>
+<li><a href="CollectionStats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..c0604d4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Comparisons.Monotonicity (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Comparisons.Monotonicity (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.Monotonicity.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Comparisons.Monotonicity" class="title">Uses of Class<br>org.eclipse.january.dataset.Comparisons.Monotonicity</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#findMonotonicity(java.lang.Object)">findMonotonicity</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Find monotonicity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.Monotonicity.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#valueOf(java.lang.String)">valueOf</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>[]</code></td>
+<td class="colLast"><span class="strong">Comparisons.Monotonicity.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html#values()">values</a></strong>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#isMonotonic(java.lang.Object,%20org.eclipse.january.dataset.Comparisons.Monotonicity)">isMonotonic</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a>&nbsp;monotonicity)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.Monotonicity.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Comparisons.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Comparisons.html
new file mode 100644
index 0000000..6a06fb5
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Comparisons.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Comparisons (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Comparisons (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Comparisons.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Comparisons" class="title">Uses of Class<br>org.eclipse.january.dataset.Comparisons</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Comparisons</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Comparisons.html" target="_top">Frames</a></li>
+<li><a href="Comparisons.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html
new file mode 100644
index 0000000..4744943
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ComplexDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ComplexDoubleDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ComplexDoubleDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.ComplexDoubleDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html
new file mode 100644
index 0000000..4f91697
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ComplexFloatDataset.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ComplexFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ComplexFloatDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ComplexFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ComplexFloatDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.ComplexFloatDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ComplexFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="ComplexFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundByteDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundByteDataset.html
new file mode 100644
index 0000000..e877e54
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundByteDataset.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CompoundByteDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundByteDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundByteDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CompoundByteDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.CompoundByteDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundByteDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundByteDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundDataset.html
new file mode 100644
index 0000000..b3279f7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundDataset.html
@@ -0,0 +1,882 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.CompoundDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.CompoundDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.CompoundDataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.CompoundDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type parameters of type <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20java.lang.Class,%20int...)">compoundZeros</a></strong>(int&nbsp;itemSize,
+                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(java.lang.Class,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20java.lang.Class,%20double)">createRange</a></strong>(int&nbsp;itemSize,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;stop)</code>
+<div class="block">Create compound dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20java.lang.Class,%20double,%20double,%20double)">createRange</a></strong>(int&nbsp;itemSize,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step)</code>
+<div class="block">Create compound dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.Dataset[],%20int)">cast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;a,
+        int&nbsp;dtype)</code>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#compoundZeros(int,%20int[],%20int)">compoundZeros</a></strong>(int&nbsp;itemSize,
+                          int[]&nbsp;shape,
+                          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#compoundZeros(int, Class, int)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(int,%20java.lang.Object,%20java.lang.Object)">createComplexDataset</a></strong>(int&nbsp;dtype,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;real,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)"><code>DatasetFactory.createComplexDataset(Class, Object, Object)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset,%20int)">createCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                          int&nbsp;itemSize)</code>
+<div class="block">Create a compound dataset from given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(int,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(int&nbsp;dtype,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(int,%20java.lang.Object...)">createCompoundDataset</a></strong>(int&nbsp;dtype,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)"><code>DatasetFactory.createCompoundDataset(Class, Object...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Object...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block">Create compound dataset of given type from given parts</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetFromLastAxis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                  boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset by using last axis as elements of an item</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20double,%20double,%20int)">createRange</a></strong>(int&nbsp;itemSize,
+                      double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(int,%20double,%20int)">createRange</a></strong>(int&nbsp;itemSize,
+                      double&nbsp;stop,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#flatten()">flatten</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#flatten()">flatten</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getErrors()">getErrors</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getErrors()">getErrors</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.CompoundDataset,%20boolean)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+        boolean&nbsp;overAllElements)</code>
+<div class="block">Function that returns a normalised compound dataset which is bounded between 0 and 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze()">squeeze</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze()">squeeze</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnd)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnd)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset,%20boolean)">createDatasetFromCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+                                                                boolean&nbsp;shareData)</code>
+<div class="block">Create a dataset from a compound dataset by using elements of an item as last axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset)">createFromCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a)</code>
+<div class="block">Create a RGB dataset from a compound dataset (no normalisation performed)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#getBilinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">getBilinear</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use
+             <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)"><code>Maths.interpolate(double[], CompoundDataset, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#getLinear(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">getLinear</a></strong>(double[]&nbsp;values,
+                  <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                  double&nbsp;x0)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)"><code>Maths.interpolate(double[], CompoundDataset, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double...)">interpolate</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double...&nbsp;x)</code>
+<div class="block">Linearly interpolate an array of values at a point in a compound n-D
+ dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double)">interpolate</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double&nbsp;x0)</code>
+<div class="block">Linearly interpolate an array of values at a point in a compound 1D
+ dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(double[],%20org.eclipse.january.dataset.CompoundDataset,%20double,%20double)">interpolate</a></strong>(double[]&nbsp;values,
+                      <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block">Linearly interpolate an array of values at a point in a compound 2D
+ dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.CompoundDataset,%20boolean)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+        boolean&nbsp;overAllElements)</code>
+<div class="block">Function that returns a normalised compound dataset which is bounded between 0 and 1.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html
new file mode 100644
index 0000000..f4378c4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CompoundDoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundDoubleDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CompoundDoubleDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.CompoundDoubleDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundDoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html
new file mode 100644
index 0000000..55cc536
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundFloatDataset.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CompoundFloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundFloatDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CompoundFloatDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.CompoundFloatDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundFloatDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundFloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html
new file mode 100644
index 0000000..51aa6f4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CompoundIntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundIntegerDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundIntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CompoundIntegerDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.CompoundIntegerDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundIntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundLongDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundLongDataset.html
new file mode 100644
index 0000000..0d3a4df
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundLongDataset.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CompoundLongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundLongDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundLongDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundLongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CompoundLongDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.CompoundLongDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundLongDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundLongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundShortDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundShortDataset.html
new file mode 100644
index 0000000..bbc1f74
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/CompoundShortDataset.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.CompoundShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.CompoundShortDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundShortDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.CompoundShortDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.CompoundShortDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/CompoundShortDataset.html" target="_top">Frames</a></li>
+<li><a href="CompoundShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousIterator.html
new file mode 100644
index 0000000..8c92868
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ContiguousIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ContiguousIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.ContiguousIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.ContiguousIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..6d256d7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ContiguousIteratorWithPosition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousIteratorWithPosition (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIteratorWithPosition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ContiguousIteratorWithPosition" class="title">Uses of Class<br>org.eclipse.january.dataset.ContiguousIteratorWithPosition</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.ContiguousIteratorWithPosition</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousIteratorWithPosition.html" target="_top">Frames</a></li>
+<li><a href="ContiguousIteratorWithPosition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html
new file mode 100644
index 0000000..f9a2b6c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousPairIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ContiguousPairIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousPairIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousPairIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ContiguousPairIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.ContiguousPairIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.ContiguousPairIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousPairIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousPairIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html
new file mode 100644
index 0000000..7d672e2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ContiguousSingleIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ContiguousSingleIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ContiguousSingleIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.ContiguousSingleIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.ContiguousSingleIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ContiguousSingleIterator.html" target="_top">Frames</a></li>
+<li><a href="ContiguousSingleIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DTypeUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DTypeUtils.html
new file mode 100644
index 0000000..ca82a77
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DTypeUtils.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DTypeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DTypeUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DTypeUtils.html" target="_top">Frames</a></li>
+<li><a href="DTypeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DTypeUtils" class="title">Uses of Class<br>org.eclipse.january.dataset.DTypeUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.DTypeUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DTypeUtils.html" target="_top">Frames</a></li>
+<li><a href="DTypeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DataEvent.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DataEvent.html
new file mode 100644
index 0000000..5bb2dd4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DataEvent.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DataEvent (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DataEvent (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DataEvent.html" target="_top">Frames</a></li>
+<li><a href="DataEvent.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DataEvent" class="title">Uses of Class<br>org.eclipse.january.dataset.DataEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></code></td>
+<td class="colLast"><span class="strong">DataEvent.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DataEvent.html#decode(java.lang.String)">decode</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;json)</code>
+<div class="block">Decodes from String for instance {"name" : "Tests", "shape" : [1024, 1024], "filepath" : "C:/tmp/Fred.txt"}</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IDataListener.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataListener.html#dataChangePerformed(org.eclipse.january.dataset.DataEvent)">dataChangePerformed</a></strong>(<a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</code>
+<div class="block">Called when data changes value/shape.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">DataListenerDelegate.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html#fire(org.eclipse.january.dataset.DataEvent)">fire</a></strong>(<a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a>&nbsp;evt)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DataEvent.html" target="_top">Frames</a></li>
+<li><a href="DataEvent.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DataListenerDelegate.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DataListenerDelegate.html
new file mode 100644
index 0000000..8abac3f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DataListenerDelegate.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DataListenerDelegate (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DataListenerDelegate (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DataListenerDelegate.html" target="_top">Frames</a></li>
+<li><a href="DataListenerDelegate.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DataListenerDelegate" class="title">Uses of Class<br>org.eclipse.january.dataset.DataListenerDelegate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#eventDelegate">eventDelegate</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DataListenerDelegate.html" target="_top">Frames</a></li>
+<li><a href="DataListenerDelegate.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Dataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Dataset.html
new file mode 100644
index 0000000..149fe03
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Dataset.html
@@ -0,0 +1,4291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.Dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.Dataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Dataset.html" target="_top">Frames</a></li>
+<li><a href="Dataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.Dataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.Dataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></strong></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></strong></code>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIteratorBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#aDataset">aDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#aDataset">aDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIteratorBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#bDataset">bDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#cDataset">cDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#oDataset">oDataset</a></strong></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#oDataset">oDataset</a></strong></code>
+<div class="block">Output dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type parameters of type <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast(java.lang.Class)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(java.lang.Class)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#copy(java.lang.Class)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(java.lang.Class)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(T)">createBlueDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Extract blue colour channel</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createComplexDataset(java.lang.Class,%20java.lang.Object,%20java.lang.Object)">createComplexDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;real,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;imag)</code>
+<div class="block">Create complex dataset of given class from real and imaginary parts</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createCompoundDataset(java.lang.Class,%20java.lang.Object...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block">Create compound dataset of given class from given parts</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)">createFromList</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</code>
+<div class="block">Create dataset of given class from list</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block">Create a dataset from object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block">Create a compound dataset from object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(T)">createGreenDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Extract green colour channel</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(T)">createGreyDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(T,%20double,%20double,%20double)">createGreyDataset</a></strong>(T&nbsp;clazz,
+                                  double&nbsp;red,
+                                  double&nbsp;green,
+                                  double&nbsp;blue)</code>
+<div class="block">Convert colour dataset to a grey-scale one using given RGB to luma mapping</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)">createLinearSpace</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                  double&nbsp;start,
+                                  double&nbsp;stop,
+                                  int&nbsp;length)</code>
+<div class="block">Create a 1D dataset of linearly spaced values in closed interval</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)">createLogSpace</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            double&nbsp;start,
+                            double&nbsp;stop,
+                            int&nbsp;length,
+                            double&nbsp;base)</code>
+<div class="block">Create a 1D dataset of logarithmically spaced values in closed interval.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)">createRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)">createRange</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                      double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset(T)">createRedDataset</a></strong>(T&nbsp;clazz)</code>
+<div class="block">Extract red colour channel</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#diag(T,%20int)">diag</a></strong>(T&nbsp;a,
+        int&nbsp;offset)</code>
+<div class="block">Create a (off-)diagonal matrix from items in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#flipLeftRight(T)">flipLeftRight</a></strong>(T&nbsp;a)</code>
+<div class="block">Flip items in left/right direction, column-wise, or along second axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#flipUpDown(T)">flipUpDown</a></strong>(T&nbsp;a)</code>
+<div class="block">Flip items in up/down direction, row-wise, or along first axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)">ones</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">ones</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20java.lang.Class,%20int...)">ones</a></strong>(int&nbsp;itemSize,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(T)">ones</a></strong>(T&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#put(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Object)">put</a></strong>(T&nbsp;a,
+      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</code>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#put(T,%20int[],%20java.lang.Object)">put</a></strong>(T&nbsp;a,
+      int[]&nbsp;indices,
+      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</code>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#repeat(T,%20int[],%20int)">repeat</a></strong>(T&nbsp;a,
+            int[]&nbsp;repeats,
+            int&nbsp;axis)</code>
+<div class="block">Constructs a dataset which has its elements along an axis replicated from
+ the original dataset by the number of times given in the repeats array.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#resize(T,%20int...)">resize</a></strong>(T&nbsp;a,
+            int...&nbsp;shape)</code>
+<div class="block">Resize a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#roll(T,%20int,%20java.lang.Integer)">roll</a></strong>(T&nbsp;a,
+        int&nbsp;shift,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Roll items over given axis by given amount</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#rollAxis(T,%20int,%20int)">rollAxis</a></strong>(T&nbsp;a,
+                int&nbsp;axis,
+                int&nbsp;start)</code>
+<div class="block">Roll the specified axis backwards until it lies in given position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90(T)">rotate90</a></strong>(T&nbsp;a)</code>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#rotate90(T,%20int)">rotate90</a></strong>(T&nbsp;a,
+                int&nbsp;k)</code>
+<div class="block">Rotate items in first two dimension by 90 degrees anti-clockwise</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(T)">sort</a></strong>(T&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(T,%20java.lang.Integer)">sort</a></strong>(T&nbsp;a,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#take(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">take</a></strong>(T&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Take items from dataset along an axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#take(T,%20int[],%20java.lang.Integer)">take</a></strong>(T&nbsp;a,
+        int[]&nbsp;indices,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Take items from dataset along an axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)">zeros</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">zeros</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)">zeros</a></strong>(int&nbsp;itemSize,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(T)">zeros</a></strong>(T&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#abs(java.lang.Object)">abs</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">abs - absolute value of each element</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#abs(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">abs</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">abs - absolute value of each element</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#add(java.util.Collection,%20boolean)">add</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+      boolean&nbsp;requireClone)</code>
+<div class="block">Adds all sets passed in together
+ 
+ The first IDataset must cast to Dataset
+ 
+ For memory efficiency sake if add(...) is called with a set of size one,
+ no clone is done, the original object is returned directly.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#all(int)">all</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          boolean&nbsp;inDegrees)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean,%20org.eclipse.january.dataset.Dataset)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          boolean&nbsp;inDegrees,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#any(int)">any</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#append(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20int)">append</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+            <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;b,
+            int&nbsp;axis)</code>
+<div class="block">Append copy of dataset with another dataset along n-th axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object)">arctan2</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arctan2</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#argMax(int,%20boolean...)">argMax</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of maximum values along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#argMin(int,%20boolean...)">argMin</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Find indices of minimum values along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>
+<div class="block">Get a non-compound dataset version</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition(org.eclipse.january.dataset.Dataset)">calcCholeskyDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate Cholesky decomposition A = L L^T</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">calcConjugateGradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20double)">calcConjugateGradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v,
+                                          int&nbsp;maxIterations,
+                                          double&nbsp;delta)</code>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < delta ||v||</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition(org.eclipse.january.dataset.Dataset)">calcEigenDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate eigen-decomposition A = V D V^T</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues(org.eclipse.january.dataset.Dataset)">calcEigenvalues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcInverse(org.eclipse.january.dataset.Dataset)">calcInverse</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate inverse of square dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition(org.eclipse.january.dataset.Dataset)">calcLUDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate LU decomposition A = P^-1 L U</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse(org.eclipse.january.dataset.Dataset)">calcPseudoInverse</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate (Moore-Penrose) pseudo-inverse</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition(org.eclipse.january.dataset.Dataset)">calcQRDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate QR decomposition A = Q R</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition(org.eclipse.january.dataset.Dataset)">calcSingularValueDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate singular value decomposition A = U S V^T</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(boolean,%20int,%20int)">cast</a></strong>(boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20boolean,%20int,%20int)">cast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20int)">cast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#cast(int)">cast</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#centralDifference(org.eclipse.january.dataset.Dataset,%20int)">centralDifference</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite central difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#choose(org.eclipse.january.dataset.IntegerDataset,%20java.lang.Object[],%20boolean,%20boolean)">choose</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+            boolean&nbsp;throwAIOOBE,
+            boolean&nbsp;clip)</code>
+<div class="block">Choose content from choices where condition is true, otherwise use default.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#coerce(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">coerce</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a copy that has been coerced to an appropriate dataset type
+ depending on the input object's class</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#concatenate(org.eclipse.january.dataset.IDataset[],%20int)">concatenate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>[]&nbsp;as,
+                      int&nbsp;axis)</code>
+<div class="block">Concatenate the set of datasets along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object)">conjugate</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">conjugate</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">BroadcastUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastUtils.html#convertAndBroadcast(java.lang.Object...)">convertAndBroadcast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;objects)</code>
+<div class="block">Converts and broadcast all objects as datasets of same shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#convertToDataset(org.eclipse.january.dataset.IDataset)">convertToDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>
+<div class="block">Convert (if necessary) a dataset obeying the interface to our implementation</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy(org.eclipse.january.dataset.IDataset,%20int)">copy</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#copy(int)">copy</a></strong>(int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copy(int)">copy</a></strong>(int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#count(int,%20boolean...)">count</a></strong>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#count(int,%20boolean...)">count</a></strong>(int&nbsp;axis,
+          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    boolean&nbsp;rowvar,
+                    boolean&nbsp;bias,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                    boolean&nbsp;rowvar,
+                    boolean&nbsp;bias,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</code>
+<div class="block">Calculate the covariance matrix (array) of a concatenated with b.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createBlueDataset(int)">createBlueDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createBlueDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createDatasetFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset,%20boolean)">createDatasetFromCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a,
+                                                                boolean&nbsp;shareData)</code>
+<div class="block">Create a dataset from a compound dataset by using elements of an item as last axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(int,%20java.util.List)">createFromList</a></strong>(int&nbsp;dtype,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.lang.Class,%20java.util.List)"><code>DatasetFactory.createFromList(Class, List&lt;?&gt;)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromList(java.util.List)">createFromList</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;?&gt;&nbsp;objectList)</code>
+<div class="block">Create dataset of appropriate type from list</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(boolean,%20java.lang.Object)">createFromObject</a></strong>(boolean&nbsp;isUnsigned,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20int,%20java.lang.Object,%20int...)">createFromObject</a></strong>(int&nbsp;itemSize,
+                                int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Class,%20java.lang.Object,%20int...)"><code>DatasetFactory.createFromObject(int, Class, Object, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object)">createFromObject</a></strong>(int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#createFromObject(Class, Object, int)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(int,%20java.lang.Object,%20int...)">createFromObject</a></strong>(int&nbsp;dtype,
+                                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Class,%20java.lang.Object,%20int...)"><code>DatasetFactory.createFromObject(Class, Object, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Object)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createFromObject(java.lang.Object,%20int...)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                                int...&nbsp;shape)</code>
+<div class="block">Create a dataset from object (automatically detect dataset type)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreenDataset(int)">createGreenDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createGreenDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(double,%20double,%20double,%20int)">createGreyDataset</a></strong>(double&nbsp;red,
+                                  double&nbsp;green,
+                                  double&nbsp;blue,
+                                  int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class, double, double, double)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createGreyDataset(int)">createGreyDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createGreyDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(double,%20double,%20int,%20int)">createLinearSpace</a></strong>(double&nbsp;start,
+                                  double&nbsp;stop,
+                                  int&nbsp;length,
+                                  int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLinearSpace(java.lang.Class,%20double,%20double,%20int)"><code>DatasetFactory.createLinearSpace(Class, double, double, int)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(double,%20double,%20int,%20double,%20int)">createLogSpace</a></strong>(double&nbsp;start,
+                            double&nbsp;stop,
+                            int&nbsp;length,
+                            double&nbsp;base,
+                            int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createLogSpace(java.lang.Class,%20double,%20double,%20int,%20double)"><code>DatasetFactory.createLogSpace(Class, double, double, int, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double,%20int)">createRange</a></strong>(double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20int)">createRange</a></strong>(double&nbsp;stop,
+                      int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double)"><code>DatasetFactory.createRange(Class, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createRedDataset(int)">createRedDataset</a></strong>(int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>RGBDataset#createRedDataset(Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">crossProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the cross product of two datasets.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">crossProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                        int&nbsp;axisA,
+                        int&nbsp;axisB,
+                        int&nbsp;axisC)</code>
+<div class="block">Calculate the cross product of two datasets.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  int&nbsp;axis,
+                                  boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#derivative(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int)">derivative</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                    int&nbsp;n)</code>
+<div class="block">Calculates the derivative of a line described by two datasets (x,y) given
+ a spread of n either side of the point</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#difference(org.eclipse.january.dataset.Dataset,%20int,%20int)">difference</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    int&nbsp;n,
+                    int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite difference</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#dotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">dotProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the dot product of two datasets.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#extract(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset)">extract</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+              <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;condition)</code>
+<div class="block">Extract values where condition is non-zero.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#eye(int,%20int,%20int,%20int)">eye</a></strong>(int&nbsp;rows,
+      int&nbsp;cols,
+      int&nbsp;offset,
+      int&nbsp;dtype)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Fill dataset with given object</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#flatten()">flatten</a></strong>()</code>
+<div class="block">Flatten shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#flatten()">flatten</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object)">floorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object)">floorRemainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorRemainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBroadcastView(int...)">getBroadcastView</a></strong>(int...&nbsp;broadcastShape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy get item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getByIndexes(java.lang.Object...)">getByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#getChoice()">getChoice</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">RunningAverage.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html#getCurrentAverage()">getCurrentAverage</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>
+<div class="block">Get chosen elements from each item as a view on dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getErrorBuffer()">getErrorBuffer</a></strong>()</code>
+<div class="block">Get the (un-broadcasted) dataset that backs the (squared) error data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrorBuffer()">getErrorBuffer</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the error array from the dataset of same shape.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getErrors()">getErrors</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getInternalSquaredError()">getInternalSquaredError</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">SingleInputBroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#getOutput()">getOutput</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#getOutput()">getOutput</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#getOutput()">getOutput</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>
+<div class="block">Get unique items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object)">hypot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">hypot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place addition with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#ifloor()">ifloor</a></strong>()</code>
+<div class="block">In-place floor</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place floor division with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#ifloorDivide(java.lang.Object)">ifloorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place multiplication with object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IDataset,%20java.lang.Number,%20java.lang.Number)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;x0,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;left,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</code>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place raise to power of object o</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset,%20int)">iqr</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+      int&nbsp;axis)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>
+<div class="block">In-place subtraction with object o</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">kroneckerProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Create the Kronecker product as defined by 
+ kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]
+ where kn = sn * in + jn for n = 0...N and s is shape of b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">kurtosis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lnnorm(org.eclipse.january.dataset.Dataset)">lnnorm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a natural log scale</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lognorm(org.eclipse.january.dataset.Dataset)">lognorm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a log10 scale</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset)">makeUnsigned</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset,%20boolean)">makeUnsigned</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                        boolean&nbsp;check)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#max(org.eclipse.january.dataset.ILazyDataset,%20int...)">max</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#max(int,%20boolean...)">max</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean(org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#mean(int,%20boolean...)">mean</a></strong>(int&nbsp;axis,
+        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean(int,%20int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(int&nbsp;start,
+        int&nbsp;stop,
+        <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CollectionStats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#mean(java.util.List)">mean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)</code>
+<div class="block">Used to get a mean image from a set of images for instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset,%20int)">median</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CollectionStats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#median(java.util.List)">median</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)</code>
+<div class="block">Used to get a median image from a set of images for instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#min(org.eclipse.january.dataset.ILazyDataset,%20int...)">min</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#min(int,%20boolean...)">min</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply(java.util.Collection,%20boolean)">multiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+                boolean&nbsp;requireClone)</code>
+<div class="block">Multiplies all sets passed in together
+ 
+ The first IDataset must cast to Dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.Dataset)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20int)">ones</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int[],%20int)">ones</a></strong>(int[]&nbsp;shape,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <code>#ones(int[], Class)</code></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int,%20int[],%20int)">ones</a></strong>(int&nbsp;itemSize,
+        int[]&nbsp;shape,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(java.lang.Class,%20int...)"><code>DatasetFactory.ones(Class, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Operations.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.BinaryOperation,%20java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Operations.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.UnaryOperation,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#outerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">outerProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the outer product of two datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#peakToPeak(int,%20boolean...)">peakToPeak</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20boolean)">phaseAsComplexNumber</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">phaseAsComplexNumber</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                        boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#power(org.eclipse.january.dataset.Dataset,%20int)">power</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;n)</code>
+<div class="block">Raise dataset to given power by matrix multiplication</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">product</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#product(org.eclipse.january.dataset.ILazyDataset,%20int)">product</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+              int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#product(int,%20boolean...)">product</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20int,%20double...)">quantile</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                double...&nbsp;values)</code>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object)">reciprocal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Find reciprocal from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">reciprocal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Find reciprocal from dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#regrid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regrid</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#regridOld(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regridOld</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remap1D(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remap1D</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;axis,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapAxis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                  int&nbsp;axisIndex,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapOneAxis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                        int&nbsp;axisIndex,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;corrections,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Returns new dataset with new shape but old data if possible, otherwise a copy is made</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#reshape(int...)">reshape</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#rootMeanSquare(int,%20boolean...)">rootMeanSquare</a></strong>(int&nbsp;axis,
+                            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset[],%20java.lang.Object[],%20java.lang.Object)">select</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>[]&nbsp;conditions,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;def)</code>
+<div class="block">Select content from choices where condition is true, otherwise use default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#select(org.eclipse.january.dataset.BooleanDataset,%20java.lang.Object,%20java.lang.Object)">select</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a>&nbsp;condition,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;x,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;y)</code>
+<div class="block">Select content according where condition is true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int,%20int)">selectDatasetRegion</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                      int&nbsp;x,
+                                      int&nbsp;y,
+                                      int&nbsp;xSize,
+                                      int&nbsp;ySize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>
+<div class="block">This is modelled after the NumPy set item with an array of indexing objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">skewness</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset(org.eclipse.january.dataset.ILazyDataset)">sliceAndConvertLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazy)</code>
+<div class="block">Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and
+ convert to our dataset implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solve(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solve</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Solve linear matrix equation A x = v</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solveSVD(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solveSVD</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Solve least squares matrix equation A x = v by SVD</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">In-place sort of dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#squeeze()">squeeze</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze()">squeeze</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnds)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnds)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int)">stdDeviation</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>
+<div class="block">Standard deviation is square root of the variance</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#stdDeviation(int,%20boolean,%20boolean...)">stdDeviation</a></strong>(int&nbsp;axis,
+                        boolean&nbsp;isWholePopulation,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20boolean,%20int...)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      boolean&nbsp;ignore,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int...)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#sum(int,%20boolean...)">sum</a></strong>(int&nbsp;axis,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#swapAxes(org.eclipse.january.dataset.IDataset,%20int,%20int)">swapAxes</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#swapAxes(int,%20int)">swapAxes</a></strong>(int&nbsp;axis1,
+                int&nbsp;axis2)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>
+<div class="block">This is a <b>synchronized</b> version of the clone method</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#synchronizedCopy()">synchronizedCopy</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">tensorDotProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                int[]&nbsp;axisa,
+                                int[]&nbsp;axisb)</code>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int)">tensorDotProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                int&nbsp;axisa,
+                                int&nbsp;axisb)</code>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#tile(org.eclipse.january.dataset.IDataset,%20int...)">tile</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+        int...&nbsp;reps)</code>
+<div class="block">Construct a dataset that contains the original dataset repeated the number
+ of times in each axis given by corresponding entries in the reps array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset)">trace</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate trace of dataset - sum of values over 1st axis and 2nd axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">trace</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;offset,
+          int&nbsp;axis1,
+          int&nbsp;axis2)</code>
+<div class="block">Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#transpose(org.eclipse.january.dataset.IDataset,%20int...)">transpose</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                  int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Dataset.html#getTransposedView(int...)"><code>getTransposedView(int...)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#transpose(int...)">transpose</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;dtype,
+                        int&nbsp;axis,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;dtype,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int)">variance</a></strong>(int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#variance(int,%20boolean,%20boolean...)">variance</a></strong>(int&nbsp;axis,
+                boolean&nbsp;isWholePopulation,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20int)">zeros</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)"><code>DatasetFactory.zeros(Dataset, Class)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int[],%20int)">zeros</a></strong>(int[]&nbsp;shape,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(java.lang.Class,%20int...)"><code>DatasetFactory.zeros(Class, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20int[],%20int)">zeros</a></strong>(int&nbsp;itemSize,
+          int[]&nbsp;shape,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int,%20java.lang.Class,%20int...)"><code>DatasetFactory.zeros(int, Class, int...)</code></a></i></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return types with arguments of type <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#gradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">gradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;x)</code>
+<div class="block">Calculate gradient (or partial derivatives) by central difference</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#meshGrid(org.eclipse.january.dataset.Dataset...)">meshGrid</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;axes)</code>
+<div class="block">Construct a list of datasets where each represents a coordinate varying over the hypergrid
+ formed by the input list of axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int[],%20int)">split</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int[]&nbsp;indices,
+          int&nbsp;axis)</code>
+<div class="block">Split a dataset into parts along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean)">split</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;sections,
+          int&nbsp;axis,
+          boolean&nbsp;checkEqual)</code>
+<div class="block">Split a dataset into equal sections along given axis</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#abs(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">abs</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">abs - absolute value of each element</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20boolean,%20org.eclipse.january.dataset.Dataset)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          boolean&nbsp;inDegrees,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#angle(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">angle</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a dataset of the arguments from a complex dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#arctan2(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">arctan2</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#averageDeviation(org.eclipse.january.dataset.Dataset)">averageDeviation</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcCholeskyDecomposition(org.eclipse.january.dataset.Dataset)">calcCholeskyDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate Cholesky decomposition A = L L^T</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConditionNumber(org.eclipse.january.dataset.Dataset)">calcConditionNumber</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate condition number of matrix by singular value decomposition method</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">calcConjugateGradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < ||v|| with maximum of 100 iterations</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcConjugateGradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20double)">calcConjugateGradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v,
+                                          int&nbsp;maxIterations,
+                                          double&nbsp;delta)</code>
+<div class="block">Calculation A x = v by conjugate gradient method with the stopping criterion being
+ that the estimated residual r = v - A x satisfies ||r|| < delta ||v||</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcDeterminant(org.eclipse.january.dataset.Dataset)">calcDeterminant</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenDecomposition(org.eclipse.january.dataset.Dataset)">calcEigenDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate eigen-decomposition A = V D V^T</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcEigenvalues(org.eclipse.january.dataset.Dataset)">calcEigenvalues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcInverse(org.eclipse.january.dataset.Dataset)">calcInverse</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate inverse of square dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcLUDecomposition(org.eclipse.january.dataset.Dataset)">calcLUDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate LU decomposition A = P^-1 L U</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcMatrixRank(org.eclipse.january.dataset.Dataset)">calcMatrixRank</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate matrix rank by singular value decomposition method</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes(org.eclipse.january.dataset.Dataset,%20int[])">calcPositionsFromIndexes</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+                                                int[]&nbsp;shape)</code>
+<div class="block">Calculate positions in given shape from a dataset of 1-D indexes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcPseudoInverse(org.eclipse.january.dataset.Dataset)">calcPseudoInverse</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate (Moore-Penrose) pseudo-inverse</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcQRDecomposition(org.eclipse.january.dataset.Dataset)">calcQRDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate QR decomposition A = Q R</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValueDecomposition(org.eclipse.january.dataset.Dataset)">calcSingularValueDecomposition</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate singular value decomposition A = U S V^T</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#calcSingularValues(org.eclipse.january.dataset.Dataset)">calcSingularValues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.Dataset[],%20int)">cast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]&nbsp;a,
+        int&nbsp;dtype)</code>
+<div class="block">Cast array of datasets to a compound dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#centralDifference(org.eclipse.january.dataset.Dataset,%20int)">centralDifference</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite central difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#centroid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">centroid</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;bases)</code>
+<div class="block">Get the centroid value of a dataset, this function works out the centroid in every direction</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#centroid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">centroid</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;bases)</code>
+<div class="block">Get the centroid value of a dataset, this function works out the centroid in every direction</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#coerce(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">coerce</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a copy that has been coerced to an appropriate dataset type
+ depending on the input object's class</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#conjugate(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">conjugate</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>
+<div class="block">Copy chosen elements from each item to another dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyElements(org.eclipse.january.dataset.Dataset,%20int)">copyElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;destination,
+                        int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>
+<div class="block">Copy content from axes in given position to array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#copyItemsFromAxes(int[],%20boolean[],%20org.eclipse.january.dataset.Dataset)">copyItemsFromAxes</a></strong>(int[]&nbsp;pos,
+                                  boolean[]&nbsp;axes,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dest)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#copyToView(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.AbstractDataset,%20boolean,%20boolean)">copyToView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;orig,
+                    <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a>&nbsp;view,
+                    boolean&nbsp;clone,
+                    boolean&nbsp;cloneMetadata)</code>
+<div class="block">Copy fields from original to view</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    boolean&nbsp;rowvar,
+                    boolean&nbsp;bias,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">See <a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)"><code>Stats.covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)</code></a> with b = null, rowvar = true, bias = false and ddof = null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#covariance(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20java.lang.Integer)">covariance</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                    boolean&nbsp;rowvar,
+                    boolean&nbsp;bias,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;ddof)</code>
+<div class="block">Calculate the covariance matrix (array) of a concatenated with b.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="strong">BroadcastUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastUtils.html#createBroadcastStrides(org.eclipse.january.dataset.Dataset,%20int[])">createBroadcastStrides</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                            int[]&nbsp;broadcastShape)</code>
+<div class="block">Create a stride array from a dataset to a broadcast shape</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(java.lang.Class,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(org.eclipse.january.dataset.Dataset,%20int)">createCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                          int&nbsp;itemSize)</code>
+<div class="block">Create a compound dataset from given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDataset(int,%20org.eclipse.january.dataset.Dataset...)">createCompoundDataset</a></strong>(int&nbsp;dtype,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;datasets)</code>
+<div class="block">Create a compound dataset from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createCompoundDatasetFromLastAxis(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetFromLastAxis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                  boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset by using last axis as elements of an item</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#createCompoundDatasetWithLastDimension(org.eclipse.january.dataset.Dataset,%20boolean)">createCompoundDatasetWithLastDimension</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                                            boolean&nbsp;shareData)</code>
+<div class="block">Create a compound dataset using last dimension of given dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSL(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSL</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;lightness)</code>
+<div class="block">Create a RGB dataset from hue, saturation and lightness dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSV(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSV</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;value)</code>
+<div class="block">Create a RGB dataset from hue, saturation and value dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(boolean&nbsp;v,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a></strong>(boolean&nbsp;v,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastSelfIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">BooleanIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Create a boolean iterator that stops at every position in the choice dataset with a true value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></code></td>
+<td class="colLast"><span class="strong">BroadcastIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#createIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">createIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                            boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#createJavaArray(org.eclipse.january.dataset.Dataset)">createJavaArray</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Create Java array (of arrays) from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>
+<div class="block">Create a lazy dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset,%20int[])">createLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                  int[]&nbsp;maxShape)</code>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.Dataset,%20int[])">createStrides</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int[]&nbsp;stride,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from slice information and a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double)">crossings</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;xAxis,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;yAxis,
+                  double&nbsp;yValue)</code>
+<div class="block">Find x values of all the crossing points of the dataset with the given y value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)">crossings</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;xAxis,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;yAxis,
+                  double&nbsp;yValue,
+                  double&nbsp;xRangeProportion)</code>
+<div class="block">Function that uses the crossings function but prunes the result, so that multiple crossings within a
+ certain proportion of the overall range of the x values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#crossings(org.eclipse.january.dataset.Dataset,%20double)">crossings</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                  double&nbsp;value)</code>
+<div class="block">Find linearly-interpolated crossing points where the given dataset crosses the given value</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">crossProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the cross product of two datasets.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#crossProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">crossProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                        int&nbsp;axisA,
+                        int&nbsp;axisB,
+                        int&nbsp;axisC)</code>
+<div class="block">Calculate the cross product of two datasets.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  int&nbsp;axis,
+                                  boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20boolean...)">cumulativeSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#cumulativeSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">cumulativeSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#derivative(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int)">derivative</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                    int&nbsp;n)</code>
+<div class="block">Calculates the derivative of a line described by two datasets (x,y) given
+ a spread of n either side of the point</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#difference(org.eclipse.january.dataset.Dataset,%20int,%20int)">difference</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    int&nbsp;n,
+                    int&nbsp;axis)</code>
+<div class="block">Discrete difference of dataset along axis using finite difference</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#dotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">dotProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the dot product of two datasets.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;other,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findFirstOccurrences</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</code>
+<div class="block">Find first occurrences in one dataset of values given in another sorted dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexEqualTo</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is equal to given number</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findIndexesForValues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</code>
+<div class="block">Find indexes in sorted dataset of values for each value in other dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThan(org.eclipse.january.dataset.Dataset,%20double)">findIndexGreaterThan</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is greater than given number</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexGreaterThanOrEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexGreaterThanOrEqualTo</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                          double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is greater than or equal to given number</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThan(org.eclipse.january.dataset.Dataset,%20double)">findIndexLessThan</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is less than given number</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexLessThanOrEqualTo(org.eclipse.january.dataset.Dataset,%20double)">findIndexLessThanOrEqualTo</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                    double&nbsp;n)</code>
+<div class="block">Find absolute index of first value in dataset that is less than or equal to given number</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorDivide(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorDivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#floorRemainder(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">floorRemainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is true</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                    boolean&nbsp;value)</code>
+<div class="block">Get an iterator that visits every item in this dataset where the corresponding item in
+ choice dataset is given by value</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBooleanIterator(org.eclipse.january.dataset.Dataset,%20boolean)">getBooleanIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;choice,
+                                    boolean&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy get item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getByBoolean(org.eclipse.january.dataset.Dataset)">getByBoolean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="strong">DTypeUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(org.eclipse.january.dataset.Dataset)">getDTypeName</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#gradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">gradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;x)</code>
+<div class="block">Calculate gradient (or partial derivatives) by central difference</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#gradient(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">gradient</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;x)</code>
+<div class="block">Calculate gradient (or partial derivatives) by central difference</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Outliers.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Outliers.html#highMed(org.eclipse.january.dataset.Dataset)">highMed</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the himed</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#hypot(java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">hypot</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#indexSort(org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">indexSort</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Indirectly sort along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double...)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                      double...&nbsp;x)</code>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                      double&nbsp;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;m,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset with a mask.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IDataset,%20java.lang.Number,%20java.lang.Number)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;x0,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;left,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</code>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double...)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      double...&nbsp;x)</code>
+<div class="block">Linearly interpolate a value at a point in a n-D dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      double&nbsp;x0)</code>
+<div class="block">Linearly interpolate a value at a point in a 1D dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block">Linearly interpolate a value at a point in a 2D dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset)">iqr</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#iqr(org.eclipse.january.dataset.Dataset,%20int)">iqr</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+      int&nbsp;axis)</code>
+<div class="block">Interquartile range: Q3 - Q1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#kroneckerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">kroneckerProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Create the Kronecker product as defined by 
+ kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]
+ where kn = sn * in + jn for n = 0...N and s is shape of b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20boolean...)">kurtosis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#kurtosis(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">kurtosis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lnnorm(org.eclipse.january.dataset.Dataset)">lnnorm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a natural log scale</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#lognorm(org.eclipse.january.dataset.Dataset)">lognorm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1
+ and has been distributed on a log10 scale</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Outliers.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Outliers.html#lowMed(org.eclipse.january.dataset.Dataset)">lowMed</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the lomed</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeFinite(org.eclipse.january.dataset.Dataset)">makeFinite</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Make floating point datasets contain only finite values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset)">median</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#median(org.eclipse.january.dataset.Dataset,%20int)">median</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+            int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">Outliers.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Outliers.html#medianAbsoluteDeviation(org.eclipse.january.dataset.Dataset)">medianAbsoluteDeviation</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the Median Absolute Deviation (MAD) and the median.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#meshGrid(org.eclipse.january.dataset.Dataset...)">meshGrid</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;axes)</code>
+<div class="block">Construct a list of datasets where each represents a coordinate varying over the hypergrid
+ formed by the input list of axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#nonZero(org.eclipse.january.dataset.Dataset)">nonZero</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#norm(org.eclipse.january.dataset.Dataset)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Function that returns a normalised dataset which is bounded between 0 and 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20double)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        double&nbsp;p)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.LinearAlgebra.NormOrder)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&nbsp;order)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">ones</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(org.eclipse.january.dataset.Dataset,%20int)">ones</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+        int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(java.lang.Class,%20double,%20double,%20double)"><code>DatasetFactory.createRange(Class, double, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Operations.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.BinaryOperation,%20java.lang.Object,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Operations.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.UnaryOperation,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#outerProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">outerProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">Calculate the outer product of two datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#outlierValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20double,%20double,%20int)">outlierValues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;mask,
+                          boolean&nbsp;value,
+                          double&nbsp;lo,
+                          double&nbsp;hi,
+                          int&nbsp;length)</code>
+<div class="block">Calculate approximate outlier values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#outlierValues(org.eclipse.january.dataset.Dataset,%20double,%20double,%20int)">outlierValues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          double&nbsp;lo,
+                          double&nbsp;hi,
+                          int&nbsp;length)</code>
+<div class="block">Calculate approximate outlier values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#phaseAsComplexNumber(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">phaseAsComplexNumber</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                        boolean&nbsp;keepZeros)</code>
+<div class="block">Create a phase only dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#power(org.eclipse.january.dataset.Dataset,%20int)">power</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;n)</code>
+<div class="block">Raise dataset to given power by matrix multiplication</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20boolean...)">product</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#product(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">product</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+              int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#put(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Object)">put</a></strong>(T&nbsp;a,
+      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;values)</code>
+<div class="block">Changes specific items of dataset by replacing them with other array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double[]</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20double...)">quantile</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                double...&nbsp;values)</code>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20double)">quantile</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                double&nbsp;q)</code>
+<div class="block">Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>[]</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#quantile(org.eclipse.january.dataset.Dataset,%20int,%20double...)">quantile</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                double...&nbsp;values)</code>
+<div class="block">Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#reciprocal(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">reciprocal</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Find reciprocal from dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#regrid(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regrid</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#regridOld(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">regridOld</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;y,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridX,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;gridY)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remap1D(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remap1D</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;axis,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapAxis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                  int&nbsp;axisIndex,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#remapOneAxis(org.eclipse.january.dataset.Dataset,%20int,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">remapOneAxis</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                        int&nbsp;axisIndex,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;corrections,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;originalAxisForCorrection,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;outputAxis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#removeNansAndInfinities(org.eclipse.january.dataset.Dataset,%20java.lang.Number)">removeNansAndInfinities</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;value)</code>
+<div class="block">Removes NaNs and infinities from floating point datasets.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#residual(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">residual</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>
+<div class="block">The residual is the sum of squared differences</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;weight,
+                boolean&nbsp;ignoreNaNs)</code>
+<div class="block">Calculate residual of dataset with object o and weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#residual(java.lang.Object,%20org.eclipse.january.dataset.Dataset,%20boolean)">residual</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w,
+                boolean&nbsp;ignoreNaNs)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">InterpolatorUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html#selectDatasetRegion(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int,%20int)">selectDatasetRegion</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                      int&nbsp;x,
+                                      int&nbsp;y,
+                                      int&nbsp;xSize,
+                                      int&nbsp;ySize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy set item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>
+<div class="block">This is modelled after the NumPy set item with a condition specified by a boolean dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>
+<div class="block">Set values of chosen elements from each item according to source dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setElements(org.eclipse.january.dataset.Dataset,%20int)">setElements</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;source,
+                      int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20boolean...)">skewness</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#skewness(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">skewness</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Outliers.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Outliers.html#snFast(org.eclipse.january.dataset.Dataset)">snFast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Outliers.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Outliers.html#snNaive(org.eclipse.january.dataset.Dataset)">snNaive</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;data)</code>
+<div class="block">Returns the Sn estimator of Croux and Rousseeuw.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solve(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solve</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Solve linear matrix equation A x = v</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#solveSVD(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">solveSVD</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;v)</code>
+<div class="block">Solve least squares matrix equation A x = v by SVD</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">sort</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;b)</code>
+<div class="block">Sort in place given dataset and reorder ancillary datasets too</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sort(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset...)">sort</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>...&nbsp;b)</code>
+<div class="block">Sort in place given dataset and reorder ancillary datasets too</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int[],%20int)">split</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int[]&nbsp;indices,
+          int&nbsp;axis)</code>
+<div class="block">Split a dataset into parts along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#split(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean)">split</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;sections,
+          int&nbsp;axis,
+          boolean&nbsp;checkEqual)</code>
+<div class="block">Split a dataset into equal sections along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#sum(org.eclipse.january.dataset.Dataset,%20boolean...)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#take(T,%20org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">take</a></strong>(T&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Take items from dataset along an axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">tensorDotProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                int[]&nbsp;axisa,
+                                int[]&nbsp;axisb)</code>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#tensorDotProduct(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20int,%20int)">tensorDotProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                int&nbsp;axisa,
+                                int&nbsp;axisb)</code>
+<div class="block">Calculate the tensor dot product over given axes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset)">trace</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Calculate trace of dataset - sum of values over 1st axis and 2nd axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#trace(org.eclipse.january.dataset.Dataset,%20int,%20int,%20int)">trace</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+          int&nbsp;offset,
+          int&nbsp;axis1,
+          int&nbsp;axis2)</code>
+<div class="block">Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">typedProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;dtype,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedProduct(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedProduct</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                        int&nbsp;dtype,
+                        int&nbsp;axis,
+                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20boolean...)">typedSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;dtype,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#typedSum(org.eclipse.january.dataset.Dataset,%20int,%20int,%20boolean...)">typedSum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                int&nbsp;dtype,
+                int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object...)">unwrap</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;a)</code>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object)">unwrap</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a)</code>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#unwrap(org.eclipse.january.dataset.Dataset,%20java.lang.Object,%20java.lang.Object)">unwrap</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>
+<div class="block">Unwrap result from mathematical methods if necessary</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#unwrapUnsigned(org.eclipse.january.dataset.Dataset,%20int)">unwrapUnsigned</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            int&nbsp;bitWidth)</code>
+<div class="block">Unwrap dataset elements so that all elements are unsigned</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Stats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Stats.html#weightedResidual(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">weightedResidual</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;w)</code>
+<div class="block">The residual is the sum of squared differences</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)">zeros</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+          <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20int)">zeros</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+          int&nbsp;dtype)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Please use the class-based methods in DatasetFactory, 
+             such as <a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(org.eclipse.january.dataset.Dataset,%20java.lang.Class)"><code>DatasetFactory.zeros(Dataset, Class)</code></a></i></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type arguments of type <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions(java.util.List,%20int[],%20int...)">calcIndexesFromPositions</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;positions,
+                                                int[]&nbsp;shape,
+                                                int...&nbsp;mode)</code>
+<div class="block">Calculate indexes in given shape from datasets of position</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DTypeUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType(java.lang.Class)">getDType</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html#BooleanBroadcastIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanBroadcastIterator</a></strong>(boolean&nbsp;v,
+                                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at every position in the choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html#BooleanContiguousIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanContiguousIterator</a></strong>(boolean&nbsp;v,
+                                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                  boolean&nbsp;createIfNull)</code>
+<div class="block">Construct a boolean iterator that stops at the position in choice dataset where its value matches
+ the given boolean</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html#BooleanIterator(boolean,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BooleanIterator</a></strong>(boolean&nbsp;v,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;c,
+                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Construct a boolean iterator that stops at the given boolean value in choice dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BooleanNullIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BooleanNullIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                      boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html#BooleanNullIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20boolean)">BooleanNullIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                      boolean&nbsp;createIfNull,
+                                      boolean&nbsp;allowInteger,
+                                      boolean&nbsp;allowComplex)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html#BroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                  <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html#BroadcastIteratorBase(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastIteratorBase</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html#BroadcastPairIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">BroadcastPairIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                          boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html#BroadcastSelfIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastSelfIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html#BroadcastSingleIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">BroadcastSingleIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html#ContiguousPairIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">ContiguousPairIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b,
+                                            <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                            boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html#ContiguousSingleIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">ContiguousSingleIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator(org.eclipse.january.dataset.Dataset,%20int)">IntegerIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index,
+                              int&nbsp;length)</code>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html#IntegerIterator(org.eclipse.january.dataset.Dataset,%20int,%20int)">IntegerIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index,
+                              int&nbsp;length,
+                              int&nbsp;isize)</code>
+<div class="block">Constructor for an iterator over the items of an integer dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.Dataset)">RGBDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;grey)</code>
+<div class="block">Create a dataset using given grey data</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">RGBDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;red,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;green,
+                    <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;blue)</code>
+<div class="block">Create a dataset using given colour data (colour components are given separately)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">SingleInputBroadcastIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean)">SingleInputBroadcastIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                        boolean&nbsp;createIfNull)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html#SingleInputBroadcastIterator(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20boolean,%20boolean,%20boolean)">SingleInputBroadcastIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o,
+                                                        boolean&nbsp;createIfNull,
+                                                        boolean&nbsp;allowInteger,
+                                                        boolean&nbsp;allowComplex)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that return <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMaximum(int,%20boolean...)">getArgMaximum</a></strong>(int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMinimum(int,%20boolean...)">getArgMinimum</a></strong>(int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount(int,%20boolean...)">getCount</a></strong>(int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(int,%20boolean...)">getMaximum</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean(int,%20boolean...)">getMean</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum(int,%20boolean...)">getMinimum</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum(int,%20boolean...)">getSum</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance(int,%20boolean,%20boolean...)">getVariance</a></strong>(int&nbsp;axis,
+                      boolean&nbsp;isWholePopulation,
+                      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">StatisticsMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html#initialize(org.eclipse.january.dataset.Dataset)">initialize</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Dataset.html" target="_top">Frames</a></li>
+<li><a href="Dataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DatasetFactory.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DatasetFactory.html
new file mode 100644
index 0000000..d9bd93d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DatasetFactory.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DatasetFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DatasetFactory (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DatasetFactory.html" target="_top">Frames</a></li>
+<li><a href="DatasetFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DatasetFactory" class="title">Uses of Class<br>org.eclipse.january.dataset.DatasetFactory</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.DatasetFactory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DatasetFactory.html" target="_top">Frames</a></li>
+<li><a href="DatasetFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DatasetUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DatasetUtils.html
new file mode 100644
index 0000000..c821d5f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DatasetUtils.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DatasetUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DatasetUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DatasetUtils.html" target="_top">Frames</a></li>
+<li><a href="DatasetUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DatasetUtils" class="title">Uses of Class<br>org.eclipse.january.dataset.DatasetUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.DatasetUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DatasetUtils.html" target="_top">Frames</a></li>
+<li><a href="DatasetUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DateDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DateDataset.html
new file mode 100644
index 0000000..f9ec82e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DateDataset.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.DateDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.DateDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DateDataset.html" target="_top">Frames</a></li>
+<li><a href="DateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.DateDataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.DateDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DateDataset.html" target="_top">Frames</a></li>
+<li><a href="DateDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DateDatasetImpl.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DateDatasetImpl.html
new file mode 100644
index 0000000..21709ce
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DateDatasetImpl.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DateDatasetImpl (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DateDatasetImpl (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DateDatasetImpl.html" target="_top">Frames</a></li>
+<li><a href="DateDatasetImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DateDatasetImpl" class="title">Uses of Class<br>org.eclipse.january.dataset.DateDatasetImpl</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.DateDatasetImpl</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DateDatasetImpl.html" target="_top">Frames</a></li>
+<li><a href="DateDatasetImpl.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DoubleDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DoubleDataset.html
new file mode 100644
index 0000000..e465475
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/DoubleDataset.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.DoubleDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.DoubleDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="DoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.DoubleDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.DoubleDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double)">createRange</a></strong>(double&nbsp;stop)</code>
+<div class="block">Create dataset with items ranging from 0 up to given stop in steps of 1</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#createRange(double,%20double,%20double)">createRange</a></strong>(double&nbsp;start,
+                      double&nbsp;stop,
+                      double&nbsp;step)</code>
+<div class="block">Create dataset with items ranging from given start up to given stop in given steps</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#exponential(double,%20int...)">exponential</a></strong>(double&nbsp;beta,
+                      int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryPart()">getImaginaryPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getImaginaryView()">getImaginaryView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#ones(int...)">ones</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#rand(double,%20double,%20int...)">rand</a></strong>(double&nbsp;low,
+        double&nbsp;high,
+        int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#rand(int...)">rand</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#randn(double,%20double,%20int...)">randn</a></strong>(double&nbsp;mean,
+          double&nbsp;std,
+          int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#randn(int...)">randn</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetFactory.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetFactory.html#zeros(int...)">zeros</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/DoubleDataset.html" target="_top">Frames</a></li>
+<li><a href="DoubleDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/FloatDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/FloatDataset.html
new file mode 100644
index 0000000..2c0606e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/FloatDataset.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.FloatDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.FloatDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/FloatDataset.html" target="_top">Frames</a></li>
+<li><a href="FloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.FloatDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.FloatDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryPart()">getImaginaryPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getImaginaryView()">getImaginaryView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealPart()">getRealPart</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getRealView()">getRealView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/FloatDataset.html" target="_top">Frames</a></li>
+<li><a href="FloatDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDataListener.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDataListener.html
new file mode 100644
index 0000000..c178b62
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDataListener.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IDataListener (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IDataListener (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDataListener.html" target="_top">Frames</a></li>
+<li><a href="IDataListener.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IDataListener" class="title">Uses of Interface<br>org.eclipse.january.dataset.IDataListener</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IDynamicShape.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>
+<div class="block">Add a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">DataListenerDelegate.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html#addDataListener(org.eclipse.january.dataset.IDataListener)">addDataListener</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IDynamicShape.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>
+<div class="block">Remove a listener which will be fired when aspects of the data change for
+ instance shape or content.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">DataListenerDelegate.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DataListenerDelegate.html#removeDataListener(org.eclipse.january.dataset.IDataListener)">removeDataListener</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a>&nbsp;l)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDataListener.html" target="_top">Frames</a></li>
+<li><a href="IDataListener.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDataset.html
new file mode 100644
index 0000000..273abb0
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDataset.html
@@ -0,0 +1,826 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDataset.html" target="_top">Frames</a></li>
+<li><a href="IDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IDataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.IDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></strong></code>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></strong></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></strong></code>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset, making new copy of data</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getErrors()">getErrors</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20int[],%20int[],%20int[])">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice(int[],%20int[],%20int[])">getSlice</a></strong>(int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#squeeze()">squeeze</a></strong>()</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#squeeze(boolean)">squeeze</a></strong>(boolean&nbsp;onlyFromEnds)</code>
+<div class="block">Remove dimensions of 1 in shape of the dataset from ends only if true</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#transformInput(org.eclipse.january.dataset.IDataset)">transformInput</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#allTrue(org.eclipse.january.dataset.IDataset,%20int)">allTrue</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+              int&nbsp;axis)</code>
+<div class="block">Test if all items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#anyTrue(org.eclipse.january.dataset.IDataset,%20int)">anyTrue</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+              int&nbsp;axis)</code>
+<div class="block">Test if any items along given axis are true in the input dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#append(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20int)">append</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+            <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;b,
+            int&nbsp;axis)</code>
+<div class="block">Append copy of dataset with another dataset along n-th axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">cast</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20boolean,%20int,%20int)">cast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        boolean&nbsp;repeat,
+        int&nbsp;dtype,
+        int&nbsp;isize)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#cast(org.eclipse.january.dataset.IDataset,%20int)">cast</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        int&nbsp;dtype)</code>
+<div class="block">Cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#concatenate(org.eclipse.january.dataset.IDataset[],%20int)">concatenate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>[]&nbsp;as,
+                      int&nbsp;axis)</code>
+<div class="block">Concatenate the set of datasets along given axis</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#convertToDataset(org.eclipse.january.dataset.IDataset)">convertToDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>
+<div class="block">Convert (if necessary) a dataset obeying the interface to our implementation</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy(java.lang.Class,%20org.eclipse.january.dataset.IDataset)">copy</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#copy(org.eclipse.january.dataset.IDataset,%20int)">copy</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+        int&nbsp;dtype)</code>
+<div class="block">Copy and cast a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#extract(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset)">extract</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+              <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;condition)</code>
+<div class="block">Extract values where condition is non-zero.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20double,%20double)">getBilinear</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>Maths.interpolate(Dataset, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#getBilinear(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.IDataset,%20double,%20double)">getBilinear</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;m,
+                      double&nbsp;x0,
+                      double&nbsp;x1)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20double,%20double)"><code>Maths.interpolate(Dataset, Dataset, double, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#getLinear(org.eclipse.january.dataset.IDataset,%20double)">getLinear</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;d,
+                  double&nbsp;x0)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20double)"><code>Maths.interpolate(Dataset, double)</code></a></i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#interpolate(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IDataset,%20java.lang.Number,%20java.lang.Number)">interpolate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;x,
+                      <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;d,
+                      <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;x0,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;left,
+                      <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&nbsp;right)</code>
+<div class="block">Linearly interpolate values at points in a 1D dataset corresponding to
+ given coordinates.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset)">makeUnsigned</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#makeUnsigned(org.eclipse.january.dataset.IDataset,%20boolean)">makeUnsigned</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                        boolean&nbsp;check)</code>
+<div class="block">Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs
+ of its contents</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#serializeDataset(org.eclipse.january.dataset.IDataset)">serializeDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>
+<div class="block">Serialize dataset by flattening it.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20int[],%20int[],%20int[])">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                int[]&nbsp;start,
+                int[]&nbsp;stop,
+                int[]&nbsp;step)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset synchronously</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#swapAxes(org.eclipse.january.dataset.IDataset,%20int,%20int)">swapAxes</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                int&nbsp;axis1,
+                int&nbsp;axis2)</code>
+<div class="block">Swap two axes in dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#tile(org.eclipse.january.dataset.IDataset,%20int...)">tile</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+        int...&nbsp;reps)</code>
+<div class="block">Construct a dataset that contains the original dataset repeated the number
+ of times in each axis given by corresponding entries in the reps array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#transformInput(org.eclipse.january.dataset.IDataset)">transformInput</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#transpose(org.eclipse.january.dataset.IDataset,%20int...)">transpose</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;a,
+                  int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">RunningAverage.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html#update(org.eclipse.january.dataset.IDataset)">update</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;dataset)</code>
+<div class="block">Update average</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type arguments of type <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#add(java.util.Collection,%20boolean)">add</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+      boolean&nbsp;requireClone)</code>
+<div class="block">Adds all sets passed in together
+ 
+ The first IDataset must cast to Dataset
+ 
+ For memory efficiency sake if add(...) is called with a set of size one,
+ no clone is done, the original object is returned directly.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CollectionStats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#mean(java.util.List)">mean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)</code>
+<div class="block">Used to get a mean image from a set of images for instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">CollectionStats.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CollectionStats.html#median(java.util.List)">median</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets)</code>
+<div class="block">Used to get a median image from a set of images for instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Maths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Maths.html#multiply(java.util.Collection,%20boolean)">multiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&gt;&nbsp;sets,
+                boolean&nbsp;requireClone)</code>
+<div class="block">Multiplies all sets passed in together
+ 
+ The first IDataset must cast to Dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html#RunningAverage(org.eclipse.january.dataset.IDataset)">RunningAverage</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> that return <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyLoader.</span><code><strong><a href="../../../../../org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                    <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazySaver.</span><code><strong><a href="../../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyAsyncSaver.</span><code><strong><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceAsync</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                          <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                          <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Non-blocking version of <a href="../../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that return <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">MaskMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html#getMask()">getMask</a></strong>()</code>
+<div class="block">Get mask</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">MaskMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html#initialize(org.eclipse.january.dataset.IDataset)">initialize</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;mask)</code>
+<div class="block">Initialize mask</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDataset.html" target="_top">Frames</a></li>
+<li><a href="IDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html
new file mode 100644
index 0000000..a0c1efb
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IDatasetChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IDatasetChangeChecker (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="IDatasetChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IDatasetChangeChecker" class="title">Uses of Interface<br>org.eclipse.january.dataset.IDatasetChangeChecker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></strong></code>
+<div class="block">Checks whether shape has changed between waits.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#checker">checker</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></strong>(int&nbsp;milliseconds,
+                                    <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>&nbsp;checker)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IDynamicShape.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#startUpdateChecker(int,%20org.eclipse.january.dataset.IDatasetChangeChecker)">startUpdateChecker</a></strong>(int&nbsp;milliseconds,
+                                    <a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>&nbsp;checker)</code>
+<div class="block">Starts a periodic checker to see if dataset has changed in some manner.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="IDatasetChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDatasetConnector.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDatasetConnector.html
new file mode 100644
index 0000000..09a02d2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDatasetConnector.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IDatasetConnector (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IDatasetConnector (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDatasetConnector.html" target="_top">Frames</a></li>
+<li><a href="IDatasetConnector.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IDatasetConnector" class="title">Uses of Interface<br>org.eclipse.january.dataset.IDatasetConnector</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></code></td>
+<td class="colLast"><span class="strong">IRemoteData.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IRemoteData.html#createRemoteDataset(java.lang.String)">createRemoteDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetPath)</code>
+<div class="block">Create a remote dataset looking at the dataset path named.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDatasetConnector.html" target="_top">Frames</a></li>
+<li><a href="IDatasetConnector.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDynamicDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDynamicDataset.html
new file mode 100644
index 0000000..bd93ce6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDynamicDataset.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IDynamicDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="IDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IDynamicDataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.IDynamicDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></strong></code>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="IDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDynamicShape.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDynamicShape.html
new file mode 100644
index 0000000..73f5633
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IDynamicShape.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IDynamicShape (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IDynamicShape (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDynamicShape.html" target="_top">Frames</a></li>
+<li><a href="IDynamicShape.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IDynamicShape" class="title">Uses of Interface<br>org.eclipse.january.dataset.IDynamicShape</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></strong></code>
+<div class="block">A dataset connector contains a lazy dataset which exists in a remote
+ location.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></strong></code>
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></strong></code>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IDynamicShape.html" target="_top">Frames</a></li>
+<li><a href="IDynamicShape.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IFileConnection.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IFileConnection.html
new file mode 100644
index 0000000..eb9d766
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IFileConnection.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IFileConnection (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IFileConnection (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IFileConnection.html" target="_top">Frames</a></li>
+<li><a href="IFileConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IFileConnection" class="title">Uses of Interface<br>org.eclipse.january.dataset.IFileConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></strong></code>
+<div class="block">A dataset connector contains a lazy dataset which exists in a remote
+ location.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">IRemoteData</a></strong></code>
+<div class="block">This class provides access to remote data which
+ may consist of more than one remote dataset.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IFileConnection.html" target="_top">Frames</a></li>
+<li><a href="IFileConnection.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ILazyDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ILazyDataset.html
new file mode 100644
index 0000000..05f4f04
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ILazyDataset.html
@@ -0,0 +1,737 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.ILazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.ILazyDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ILazyDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.ILazyDataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.ILazyDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></strong></code>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></strong></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></strong></code>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></strong></code>
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></strong></code>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></strong></code>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></strong></code>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></strong></code>
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#clone()">clone</a></strong>()</code>
+<div class="block">Clone dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#createFromSerializable(java.io.Serializable,%20boolean)">createFromSerializable</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;blob,
+                                            boolean&nbsp;keepLazy)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#getDataset()">getDataset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">IDynamicShape.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicShape.html#getDataset()">getDataset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrors()">getErrors</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getErrors()">getErrors</a></strong>()</code>
+<div class="block">Get the errors, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getErrors()">getErrors</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>
+<div class="block">Permute copy of dataset's axes so that given order is old order:</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#lazyRand(int...)">lazyRand</a></strong>(int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#lazyRand(int,%20java.lang.String,%20int...)">lazyRand</a></strong>(int&nbsp;dtype,
+                <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#lazyRand(java.lang.String,%20int...)">lazyRand</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>
+<div class="block">Remove dimensions of 1 from ends of shape of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static int[][]</code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#calcShapes(boolean,%20org.eclipse.january.dataset.ILazyDataset...)">calcShapes</a></strong>(boolean&nbsp;extend,
+                    <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;datasets)</code>
+<div class="block">Calculate (possibly extended) shapes from given datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">ShapeUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShapeUtils.html#checkCompatibility(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.ILazyDataset)">checkCompatibility</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g,
+                                    <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;h)</code>
+<div class="block">This function takes a dataset and checks its shape against another dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[])">createSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop)</code>
+<div class="block">Creats SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[],%20int[])">createSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop,
+                      int[]&nbsp;step)</code>
+<div class="block">Creating SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">DTypeUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDType(org.eclipse.january.dataset.ILazyDataset)">getDType</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;d)</code>
+<div class="block">Get dataset type from given dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="strong">DTypeUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DTypeUtils.html#getDTypeName(org.eclipse.january.dataset.ILazyDataset)">getDTypeName</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;a)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getMaxSliceLength(org.eclipse.january.dataset.ILazyDataset,%20int)">getMaxSliceLength</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazySet,
+                                  int&nbsp;dimension)</code>
+<div class="block">Gets the maximum size of a slice of a dataset in a given dimension
+ which should normally fit in memory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>
+<div class="block">This method takes a dataset and checks its shape against the current dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#isCompatibleWith(org.eclipse.january.dataset.ILazyDataset)">isCompatibleWith</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;g)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#max(org.eclipse.january.dataset.ILazyDataset,%20int...)">max</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean(org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#mean(int,%20int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">mean</a></strong>(int&nbsp;start,
+        int&nbsp;stop,
+        <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+        int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#min(org.eclipse.january.dataset.ILazyDataset,%20int...)">min</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#product(org.eclipse.january.dataset.ILazyDataset,%20int)">product</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+              int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ShapeChangeChecker.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShapeChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IDatasetChangeChecker.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html#setDataset(org.eclipse.january.dataset.ILazyDataset)">setDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;dataset)</code>
+<div class="block">Set dataset to be checked for signs of change.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#sliceAndConvertLazyDataset(org.eclipse.january.dataset.ILazyDataset)">sliceAndConvertLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazy)</code>
+<div class="block">Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and
+ convert to our dataset implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20boolean,%20int...)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      boolean&nbsp;ignore,
+      int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int...)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int...&nbsp;ignoreAxes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyMaths.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html#sum(org.eclipse.january.dataset.ILazyDataset,%20int)">sum</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+      int&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#AggregateDataset(boolean,%20org.eclipse.january.dataset.ILazyDataset...)">AggregateDataset</a></strong>(boolean&nbsp;extend,
+                                <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;datasets)</code>
+<div class="block">Create an aggregate dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that return <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAnalyserAngles()">getAnalyserAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[]</code></td>
+<td class="colLast"><span class="strong">AxesMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxes()">getAxes</a></strong>()</code>
+<div class="block">Get axis datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[]</code></td>
+<td class="colLast"><span class="strong">AxesMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxis(int)">getAxis</a></strong>(int&nbsp;axisDim)</code>
+<div class="block">Get all axis datasets for the given dimension</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAzimuthalAngles()">getAzimuthalAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getBindingEnergies()">getBindingEnergies</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisOffset()">getEnergyAxisOffset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ErrorMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html#getError()">getError</a></strong>()</code>
+<div class="block">Get error dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getKineticEnergies()">getKineticEnergies</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">OriginMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#getParent()">getParent</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPhotoelectronMomentum()">getPhotoelectronMomentum</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPolarAngles()">getPolarAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ARPESMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html#getTiltAngles()">getTiltAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">AxesMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis(int,%20org.eclipse.january.dataset.ILazyDataset)">addAxis</a></strong>(int&nbsp;i,
+              <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazyDataset)</code>
+<div class="block">Add axis data to given dimension.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">AxesMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis(int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">addAxis</a></strong>(int&nbsp;primaryAxisDim,
+              <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;iLazyDataset,
+              int...&nbsp;dimMapping)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">OriginMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#initialize(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.Slice[],%20int[],%20java.lang.String,%20java.lang.String)">initialize</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;parent,
+                    <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;outSlice,
+                    int[]&nbsp;dataDims,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetName)</code>
+<div class="block">Initialize origin of dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">AxesMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html#setAxis(int,%20org.eclipse.january.dataset.ILazyDataset...)">setAxis</a></strong>(int&nbsp;axisDim,
+              <a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;axisData)</code>
+<div class="block">Set axis datasets for given dimension.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ErrorMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html#setError(org.eclipse.january.dataset.ILazyDataset)">setError</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;error)</code>
+<div class="block">Set the error</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ILazyDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html
new file mode 100644
index 0000000..e748f12
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.ILazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.ILazyWriteableDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.ILazyWriteableDataset" class="title">Uses of Interface<br>org.eclipse.january.dataset.ILazyWriteableDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="ILazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IMetadataProvider.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IMetadataProvider.html
new file mode 100644
index 0000000..e2d99d8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IMetadataProvider.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IMetadataProvider (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IMetadataProvider (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IMetadataProvider.html" target="_top">Frames</a></li>
+<li><a href="IMetadataProvider.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IMetadataProvider" class="title">Uses of Interface<br>org.eclipse.january.dataset.IMetadataProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></strong></code>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></strong></code>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></strong></code>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></strong></code>
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></strong></code>
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></strong></code>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></strong></code>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></strong></code>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></strong></code>
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IMetadataProvider.html" target="_top">Frames</a></li>
+<li><a href="IMetadataProvider.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IOperation.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IOperation.html
new file mode 100644
index 0000000..f02d754
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IOperation.html
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IOperation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IOperation.html" target="_top">Frames</a></li>
+<li><a href="IOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IOperation" class="title">Uses of Interface<br>org.eclipse.january.dataset.IOperation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></strong></code>
+<div class="block">Interface to represent a binary operation for implementations over different output domains</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></strong></code>
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></strong></code>
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></strong></code>
+<div class="block">Addition with boolean or</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></strong></code>
+<div class="block">Division with boolean and of negated second operand</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></strong></code>
+<div class="block">Exponentiation with boolean and</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></strong></code>
+<div class="block">Select maximum of a and b</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></strong></code>
+<div class="block">Select minimum of a and b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></strong></code>
+<div class="block">Multiplication with boolean and</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></strong></code>
+<div class="block">Negation with boolean not</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></strong></code>
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></strong></code>
+<div class="block">Subtraction with boolean or of negated second operand</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></strong></code>
+<div class="block">Use given value if a == b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a >= b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></strong></code>
+<div class="block">Use given value if a < b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a <= b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></strong></code>
+<div class="block">Stub class where only two methods need to be overridden:
+  <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)"><code>UnaryOperation.Stub.complexOperate(double[], double, double)</code></a>,
+  <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)"><code>UnaryOperation.Stub.toString(String)</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IOperation.html" target="_top">Frames</a></li>
+<li><a href="IOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IRemoteData.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IRemoteData.html
new file mode 100644
index 0000000..2a50285
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IRemoteData.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.IRemoteData (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.IRemoteData (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IRemoteData.html" target="_top">Frames</a></li>
+<li><a href="IRemoteData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.IRemoteData" class="title">Uses of Interface<br>org.eclipse.january.dataset.IRemoteData</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.IRemoteData</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IRemoteData.html" target="_top">Frames</a></li>
+<li><a href="IRemoteData.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IndexIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IndexIterator.html
new file mode 100644
index 0000000..fd39d96
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IndexIterator.html
@@ -0,0 +1,533 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.IndexIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.IndexIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IndexIterator.html" target="_top">Frames</a></li>
+<li><a href="IndexIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.IndexIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.IndexIterator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></strong></code>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()"><code>hasNext()</code></a> returns true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></strong></code>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></strong></code>
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></strong></code>
+<div class="block">Base class for all broadcast iterators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></strong></code>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></strong></code>
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></strong></code>
+<div class="block">Class to run over contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></strong></code>
+<div class="block">Class to run over contiguous datasets and keep track of position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></strong></code>
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></strong></code>
+<div class="block">Class to run over an integer dataset and return its items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></strong></code>
+<div class="block">Class to run over an array of integer datasets and return its items</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></strong></code>
+<div class="block">Class to provide iteration through a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></strong></code>
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></strong></code>
+<div class="block">Class to run over a broadcasted single-item dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></strong></code>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></strong></code>
+<div class="block">Class to provide slice iteration through a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></strong></code>
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getIterator()">getIterator</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator()">getIterator</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getIterator(boolean)">getIterator</a></strong>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getIterator(boolean)">getIterator</a></strong>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(boolean)">getIterator</a></strong>(boolean&nbsp;withPosition)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getIterator(int)">getIterator</a></strong>(int&nbsp;element)</code>
+<div class="block">Get an iterator that picks out the chosen element from all items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a></strong>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(int[],%20int[],%20int[])">getSliceIterator</a></strong>(int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;other,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>
+<div class="block">Populate another dataset with part of current dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#fillDataset(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.IndexIterator)">fillDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;result,
+                      <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IndexIterator.html" target="_top">Frames</a></li>
+<li><a href="IndexIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegerDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegerDataset.html
new file mode 100644
index 0000000..7898e6e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegerDataset.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.IntegerDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.IntegerDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="IntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.IntegerDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.IntegerDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#argMax(int,%20boolean...)">argMax</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMax(int,%20boolean...)">argMax</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#argMin(int,%20boolean...)">argMin</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#argMin(int,%20boolean...)">argMin</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcIndexesFromPositions(java.util.List,%20int[],%20int...)">calcIndexesFromPositions</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&gt;&nbsp;positions,
+                                                int[]&nbsp;shape,
+                                                int...&nbsp;mode)</code>
+<div class="block">Calculate indexes in given shape from datasets of position</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findFirstOccurrences(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findFirstOccurrences</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</code>
+<div class="block">Find first occurrences in one dataset of values given in another sorted dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#findIndexesForValues(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">findIndexesForValues</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;values)</code>
+<div class="block">Find indexes in sorted dataset of values for each value in other dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getIndices()">getIndices</a></strong>()</code>
+<div class="block">Generate an index dataset for current dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getIndices()">getIndices</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#indexSort(org.eclipse.january.dataset.Dataset,%20java.lang.Integer)">indexSort</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                  <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>
+<div class="block">Indirectly sort along given axis</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#indices(int...)">indices</a></strong>(int...&nbsp;shape)</code>
+<div class="block">Generate an index dataset for given dataset where sub-datasets contain index values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#poisson(double,%20int...)">poisson</a></strong>(double&nbsp;lam,
+              int...&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#randint(int,%20int,%20int[])">randint</a></strong>(int&nbsp;low,
+              int&nbsp;high,
+              int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">Random.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Random.html#random_integers(int,%20int,%20int[])">random_integers</a></strong>(int&nbsp;low,
+                              int&nbsp;high,
+                              int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return types with arguments of type <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#calcPositionsFromIndexes(org.eclipse.january.dataset.Dataset,%20int[])">calcPositionsFromIndexes</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;indices,
+                                                int[]&nbsp;shape)</code>
+<div class="block">Calculate positions in given shape from a dataset of 1-D indexes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&gt;</code></td>
+<td class="colLast"><span class="strong">Comparisons.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Comparisons.html#nonZero(org.eclipse.january.dataset.Dataset)">nonZero</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a)</code>
+<div class="block">Create a list of indices of positions where items are non-zero</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">DatasetUtils.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DatasetUtils.html#choose(org.eclipse.january.dataset.IntegerDataset,%20java.lang.Object[],%20boolean,%20boolean)">choose</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index,
+            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;choices,
+            boolean&nbsp;throwAIOOBE,
+            boolean&nbsp;clip)</code>
+<div class="block">Choose content from choices where condition is true, otherwise use default.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>
+<div class="block">This is modelled after the NumPy get item with an index dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getBy1DIndex(org.eclipse.january.dataset.IntegerDataset)">getBy1DIndex</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IntegerDataset.html" target="_top">Frames</a></li>
+<li><a href="IntegerDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegerIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegerIterator.html
new file mode 100644
index 0000000..1ee6ecb
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegerIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.IntegerIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.IntegerIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IntegerIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegerIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.IntegerIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.IntegerIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.IntegerIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IntegerIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegerIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegersIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegersIterator.html
new file mode 100644
index 0000000..975e941
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/IntegersIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.IntegersIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.IntegersIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IntegersIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegersIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.IntegersIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.IntegersIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.IntegersIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/IntegersIterator.html" target="_top">Frames</a></li>
+<li><a href="IntegersIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/InterpolatorUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/InterpolatorUtils.html
new file mode 100644
index 0000000..99b5b93
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/InterpolatorUtils.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.InterpolatorUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.InterpolatorUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/InterpolatorUtils.html" target="_top">Frames</a></li>
+<li><a href="InterpolatorUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.InterpolatorUtils" class="title">Uses of Class<br>org.eclipse.january.dataset.InterpolatorUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.InterpolatorUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/InterpolatorUtils.html" target="_top">Frames</a></li>
+<li><a href="InterpolatorUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDataset.html
new file mode 100644
index 0000000..00b7d49
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDataset.html
@@ -0,0 +1,217 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LazyDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LazyDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LazyDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.LazyDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#base">base</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>
+<div class="block">Create a lazy dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#squeezeEnds()">squeezeEnds</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDatasetBase.html
new file mode 100644
index 0000000..064f2e1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDatasetBase.html
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LazyDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LazyDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="LazyDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LazyDatasetBase" class="title">Uses of Class<br>org.eclipse.january.dataset.LazyDatasetBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></strong></code>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></strong></code>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></strong></code>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></strong></code>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></strong></code>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></strong></code>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></strong></code>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></strong></code>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></strong></code>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></strong></code>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></strong></code>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></strong></code>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></strong></code>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></strong></code>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></strong></code>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></strong></code>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></strong></code>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></strong></code>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></strong></code>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></strong></code>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="LazyDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html
new file mode 100644
index 0000000..59c6450
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyDynamicDataset.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LazyDynamicDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LazyDynamicDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LazyDynamicDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.LazyDynamicDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></strong></code>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDynamicDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyDynamicDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyDynamicDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyMaths.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyMaths.html
new file mode 100644
index 0000000..e0e452b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyMaths.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LazyMaths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LazyMaths (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyMaths.html" target="_top">Frames</a></li>
+<li><a href="LazyMaths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LazyMaths" class="title">Uses of Class<br>org.eclipse.january.dataset.LazyMaths</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.LazyMaths</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyMaths.html" target="_top">Frames</a></li>
+<li><a href="LazyMaths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html
new file mode 100644
index 0000000..d3c894a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LazyWriteableDataset.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LazyWriteableDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LazyWriteableDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LazyWriteableDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.LazyWriteableDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset)">createLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createLazyDataset(org.eclipse.january.dataset.Dataset,%20int[])">createLazyDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset,
+                                  int[]&nbsp;maxShape)</code>
+<div class="block">Create a lazy writeable dataset based on in-memory data (handy for testing)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(int[],%20int[],%20int[])">getSliceView</a></strong>(int[]&nbsp;start,
+                        int[]&nbsp;stop,
+                        int[]&nbsp;step)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getTransposedView(int...)">getTransposedView</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LazyWriteableDataset.html" target="_top">Frames</a></li>
+<li><a href="LazyWriteableDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..7a1f987
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LinearAlgebra.NormOrder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LinearAlgebra.NormOrder (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.NormOrder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LinearAlgebra.NormOrder" class="title">Uses of Class<br>org.eclipse.january.dataset.LinearAlgebra.NormOrder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.NormOrder.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#valueOf(java.lang.String)">valueOf</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>[]</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.NormOrder.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html#values()">values</a></strong>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static double</code></td>
+<td class="colLast"><span class="strong">LinearAlgebra.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html#norm(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.LinearAlgebra.NormOrder)">norm</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+        <a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>&nbsp;order)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.NormOrder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LinearAlgebra.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LinearAlgebra.html
new file mode 100644
index 0000000..d892add
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LinearAlgebra.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LinearAlgebra (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LinearAlgebra (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LinearAlgebra.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LinearAlgebra" class="title">Uses of Class<br>org.eclipse.january.dataset.LinearAlgebra</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.LinearAlgebra</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LinearAlgebra.html" target="_top">Frames</a></li>
+<li><a href="LinearAlgebra.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LongDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LongDataset.html
new file mode 100644
index 0000000..2e54f91
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/LongDataset.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.LongDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.LongDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LongDataset.html" target="_top">Frames</a></li>
+<li><a href="LongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.LongDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.LongDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/LongDataset.html" target="_top">Frames</a></li>
+<li><a href="LongDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Maths.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Maths.html
new file mode 100644
index 0000000..e5a5154
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Maths.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Maths (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Maths (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Maths.html" target="_top">Frames</a></li>
+<li><a href="Maths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Maths" class="title">Uses of Class<br>org.eclipse.january.dataset.Maths</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Maths</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Maths.html" target="_top">Frames</a></li>
+<li><a href="Maths.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/NullIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/NullIterator.html
new file mode 100644
index 0000000..87283f6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/NullIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.NullIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.NullIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/NullIterator.html" target="_top">Frames</a></li>
+<li><a href="NullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.NullIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.NullIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.NullIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/NullIterator.html" target="_top">Frames</a></li>
+<li><a href="NullIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ObjectDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ObjectDataset.html
new file mode 100644
index 0000000..555f4eb
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ObjectDataset.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ObjectDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ObjectDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ObjectDataset.html" target="_top">Frames</a></li>
+<li><a href="ObjectDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ObjectDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.ObjectDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ObjectDataset.html" target="_top">Frames</a></li>
+<li><a href="ObjectDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html
new file mode 100644
index 0000000..fb35ca6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ObjectDatasetBase.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ObjectDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ObjectDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ObjectDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="ObjectDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ObjectDatasetBase" class="title">Uses of Class<br>org.eclipse.january.dataset.ObjectDatasetBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ObjectDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="ObjectDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Addition.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Addition.html
new file mode 100644
index 0000000..3d3dd40
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Addition.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Addition (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Addition (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Addition.html" target="_top">Frames</a></li>
+<li><a href="Operations.Addition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Addition" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Addition</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Addition</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Addition.html" target="_top">Frames</a></li>
+<li><a href="Operations.Addition.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Division.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Division.html
new file mode 100644
index 0000000..b20ee27
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Division.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Division (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Division (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Division.html" target="_top">Frames</a></li>
+<li><a href="Operations.Division.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Division" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Division</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></strong></code>
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Division.html" target="_top">Frames</a></li>
+<li><a href="Operations.Division.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..0c9fe80
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.DivisionTowardsFloor (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.DivisionTowardsFloor (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionTowardsFloor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.DivisionTowardsFloor" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.DivisionTowardsFloor</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.DivisionTowardsFloor</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.DivisionTowardsFloor.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionTowardsFloor.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..99d00a0
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.DivisionWithZero (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.DivisionWithZero (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionWithZero.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.DivisionWithZero" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.DivisionWithZero</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.DivisionWithZero</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.DivisionWithZero.html" target="_top">Frames</a></li>
+<li><a href="Operations.DivisionWithZero.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html
new file mode 100644
index 0000000..d62c839
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Exponentiation.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Exponentiation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Exponentiation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Exponentiation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Exponentiation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Exponentiation" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Exponentiation</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Exponentiation</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Exponentiation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Exponentiation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Maximum.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Maximum.html
new file mode 100644
index 0000000..03b0ee8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Maximum.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Maximum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Maximum (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Maximum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Maximum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Maximum" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Maximum</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Maximum</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Maximum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Maximum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Minimum.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Minimum.html
new file mode 100644
index 0000000..5e2bc2f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Minimum.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Minimum (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Minimum (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Minimum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Minimum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Minimum" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Minimum</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Minimum</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Minimum.html" target="_top">Frames</a></li>
+<li><a href="Operations.Minimum.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Multiplication.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Multiplication.html
new file mode 100644
index 0000000..f45e2ce
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Multiplication.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Multiplication (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Multiplication (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Multiplication.html" target="_top">Frames</a></li>
+<li><a href="Operations.Multiplication.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Multiplication" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Multiplication</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Multiplication</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Multiplication.html" target="_top">Frames</a></li>
+<li><a href="Operations.Multiplication.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Negation.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Negation.html
new file mode 100644
index 0000000..b563e77
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Negation.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Negation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Negation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Negation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Negation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Negation" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Negation</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Negation</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Negation.html" target="_top">Frames</a></li>
+<li><a href="Operations.Negation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Remainder.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Remainder.html
new file mode 100644
index 0000000..b6fa31a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Remainder.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Remainder (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Remainder (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Remainder.html" target="_top">Frames</a></li>
+<li><a href="Operations.Remainder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Remainder" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Remainder</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Remainder</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Remainder.html" target="_top">Frames</a></li>
+<li><a href="Operations.Remainder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Subtraction.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Subtraction.html
new file mode 100644
index 0000000..9de9788
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.Subtraction.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.Subtraction (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.Subtraction (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Subtraction.html" target="_top">Frames</a></li>
+<li><a href="Operations.Subtraction.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.Subtraction" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.Subtraction</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.Subtraction</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.Subtraction.html" target="_top">Frames</a></li>
+<li><a href="Operations.Subtraction.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseBase.html
new file mode 100644
index 0000000..7402842
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseBase.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.UseBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.UseBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseBase.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.UseBase" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.UseBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></strong></code>
+<div class="block">Use given value if a == b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></strong></code>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a >= b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></strong></code>
+<div class="block">Use given value if a < b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></strong></code>
+<div class="block">Use given value if a <= b else use a</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseBase.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..b0c7677
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.UseIfEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.UseIfEqualTo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.UseIfEqualTo" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.UseIfEqualTo</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.UseIfEqualTo</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..42ba10f
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.UseIfGreaterThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.UseIfGreaterThan (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.UseIfGreaterThan" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.UseIfGreaterThan</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.UseIfGreaterThan</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..5da7ec6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.UseIfGreaterThanOrEqualTo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.UseIfGreaterThanOrEqualTo" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.UseIfGreaterThanOrEqualTo</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.UseIfGreaterThanOrEqualTo</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfGreaterThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfGreaterThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..6afc1b0
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.UseIfLessThan (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.UseIfLessThan (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.UseIfLessThan" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.UseIfLessThan</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.UseIfLessThan</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfLessThan.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThan.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..ff8e876
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations.UseIfLessThanOrEqualTo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations.UseIfLessThanOrEqualTo" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations.UseIfLessThanOrEqualTo</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations.UseIfLessThanOrEqualTo</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.UseIfLessThanOrEqualTo.html" target="_top">Frames</a></li>
+<li><a href="Operations.UseIfLessThanOrEqualTo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.html
new file mode 100644
index 0000000..08e6cb8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Operations.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Operations (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Operations (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.html" target="_top">Frames</a></li>
+<li><a href="Operations.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Operations" class="title">Uses of Class<br>org.eclipse.january.dataset.Operations</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Operations</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Operations.html" target="_top">Frames</a></li>
+<li><a href="Operations.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Outliers.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Outliers.html
new file mode 100644
index 0000000..63884de
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Outliers.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Outliers (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Outliers (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Outliers.html" target="_top">Frames</a></li>
+<li><a href="Outliers.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Outliers" class="title">Uses of Class<br>org.eclipse.january.dataset.Outliers</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Outliers</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Outliers.html" target="_top">Frames</a></li>
+<li><a href="Outliers.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/PositionIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/PositionIterator.html
new file mode 100644
index 0000000..fda4fe0
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/PositionIterator.html
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.PositionIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.PositionIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/PositionIterator.html" target="_top">Frames</a></li>
+<li><a href="PositionIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.PositionIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.PositionIterator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getPositionIterator(int...)">getPositionIterator</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getPositionIterator(int...)">getPositionIterator</a></strong>(int...&nbsp;axes)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/PositionIterator.html" target="_top">Frames</a></li>
+<li><a href="PositionIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/RGBDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/RGBDataset.html
new file mode 100644
index 0000000..196426d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/RGBDataset.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.RGBDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.RGBDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/RGBDataset.html" target="_top">Frames</a></li>
+<li><a href="RGBDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.RGBDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.RGBDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromCompoundDataset(org.eclipse.january.dataset.CompoundDataset)">createFromCompoundDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>&nbsp;a)</code>
+<div class="block">Create a RGB dataset from a compound dataset (no normalisation performed)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSL(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSL</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;lightness)</code>
+<div class="block">Create a RGB dataset from hue, saturation and lightness dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromHSV(org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset,%20org.eclipse.january.dataset.Dataset)">createFromHSV</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;hue,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;saturation,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;value)</code>
+<div class="block">Create a RGB dataset from hue, saturation and value dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#createFromObject(java.lang.Object)">createFromObject</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
+<div class="block">Create a RGB dataset from an object which could be a Java list, array (of arrays...) or Number.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#RGBDataset(org.eclipse.january.dataset.RGBDataset)">RGBDataset</a></strong>(<a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a>&nbsp;dataset)</code>
+<div class="block">Copy a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/RGBDataset.html" target="_top">Frames</a></li>
+<li><a href="RGBDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Random.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Random.html
new file mode 100644
index 0000000..97bebdd
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Random.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Random (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Random (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Random.html" target="_top">Frames</a></li>
+<li><a href="Random.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Random" class="title">Uses of Class<br>org.eclipse.january.dataset.Random</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Random</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Random.html" target="_top">Frames</a></li>
+<li><a href="Random.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/RunningAverage.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/RunningAverage.html
new file mode 100644
index 0000000..da4d3ab
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/RunningAverage.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.RunningAverage (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.RunningAverage (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/RunningAverage.html" target="_top">Frames</a></li>
+<li><a href="RunningAverage.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.RunningAverage" class="title">Uses of Class<br>org.eclipse.january.dataset.RunningAverage</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.RunningAverage</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/RunningAverage.html" target="_top">Frames</a></li>
+<li><a href="RunningAverage.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html
new file mode 100644
index 0000000..19f953c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShapeChangeChecker.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ShapeChangeChecker (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ShapeChangeChecker (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ShapeChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="ShapeChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ShapeChangeChecker" class="title">Uses of Class<br>org.eclipse.january.dataset.ShapeChangeChecker</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.ShapeChangeChecker</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ShapeChangeChecker.html" target="_top">Frames</a></li>
+<li><a href="ShapeChangeChecker.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShapeUtils.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShapeUtils.html
new file mode 100644
index 0000000..8f7d407
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShapeUtils.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ShapeUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ShapeUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ShapeUtils.html" target="_top">Frames</a></li>
+<li><a href="ShapeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ShapeUtils" class="title">Uses of Class<br>org.eclipse.january.dataset.ShapeUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.ShapeUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ShapeUtils.html" target="_top">Frames</a></li>
+<li><a href="ShapeUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShortDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShortDataset.html
new file mode 100644
index 0000000..7d0d74b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/ShortDataset.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.ShortDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.ShortDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ShortDataset.html" target="_top">Frames</a></li>
+<li><a href="ShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.ShortDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.ShortDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#asNonCompoundDataset(boolean)">asNonCompoundDataset</a></strong>(boolean&nbsp;shareData)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getBlueView()">getBlueView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElements(int)">getElements</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getElementsView(int)">getElementsView</a></strong>(int&nbsp;element)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getGreenView()">getGreenView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getRedView()">getRedView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/ShortDataset.html" target="_top">Frames</a></li>
+<li><a href="ShortDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..6124740
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.SingleInputBroadcastIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.SingleInputBroadcastIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleInputBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.SingleInputBroadcastIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.SingleInputBroadcastIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.SingleInputBroadcastIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SingleInputBroadcastIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleInputBroadcastIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SingleItemIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SingleItemIterator.html
new file mode 100644
index 0000000..488a0a8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SingleItemIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.SingleItemIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.SingleItemIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SingleItemIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleItemIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.SingleItemIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.SingleItemIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.SingleItemIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SingleItemIterator.html" target="_top">Frames</a></li>
+<li><a href="SingleItemIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Slice.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Slice.html
new file mode 100644
index 0000000..f3910bc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Slice.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Slice (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Slice (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Slice.html" target="_top">Frames</a></li>
+<li><a href="Slice.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Slice" class="title">Uses of Class<br>org.eclipse.january.dataset.Slice</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#clone()">clone</a></strong>()</code>
+<div class="block">Creates a deep copy of the Slice.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#convertFromString(java.lang.String)">convertFromString</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sliceString)</code>
+<div class="block">Converts string in a Slice array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#convertToSlice()">convertToSlice</a></strong>()</code>
+<div class="block">Converts to a slice array all the Slices of the SliceND.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#convertToSlice(int[],%20int[],%20int[])">convertToSlice</a></strong>(int[]&nbsp;start,
+                            int[]&nbsp;stop,
+                            int[]&nbsp;step)</code>
+<div class="block">Converts a set of integer arrays in a slice array</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#flip()">flip</a></strong>()</code>
+<div class="block">Flips the Slice direction, after this operation, the slice begins at
+ previous end point, steps in the opposite direction, and finishes at the
+ previous start point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#setLength(int)">setLength</a></strong>(int&nbsp;length)</code>
+<div class="block">Sets the maximal dimensions length of the Slice.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#convertFromSlice(org.eclipse.january.dataset.Slice[],%20int[],%20int[],%20int[],%20int[])">convertFromSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                                int[]&nbsp;shape,
+                                int[]&nbsp;start,
+                                int[]&nbsp;stop,
+                                int[]&nbsp;step)</code>
+<div class="block">Populates given start, stop, step arrays from given slice array</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="strong">Slice.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Slice.html#createString(org.eclipse.january.dataset.Slice...)">createString</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slices)</code>
+<div class="block">Creates a string representation of slices.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.Slice...)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.Slice...)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#setSlice(int,%20org.eclipse.january.dataset.Slice)">setSlice</a></strong>(int&nbsp;i,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>&nbsp;slice)</code>
+<div class="block">Set slice for given dimension.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.Slice...)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;object,
+                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int[],%20org.eclipse.january.dataset.Slice[],%20int[])">PositionIterator</a></strong>(int[]&nbsp;shape,
+                                <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;slice,
+                                int[]&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20int[],%20org.eclipse.january.dataset.Slice...)">SliceND</a></strong>(int[]&nbsp;shape,
+              int[]&nbsp;maxShape,
+              <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices, if the maxShape is
+ <code>null</code>, it will be set to the maximum shape of the nD Slice.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#SliceND(int[],%20org.eclipse.january.dataset.Slice...)">SliceND</a></strong>(int[]&nbsp;shape,
+              <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>...&nbsp;slice)</code>
+<div class="block">Construct a nD Slice from an array of 1D slices.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that return <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="strong">OriginMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceFromInput()">getSliceFromInput</a></strong>()</code>
+<div class="block">The starting slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><span class="strong">OriginMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceInOutput()">getSliceInOutput</a></strong>()</code>
+<div class="block">Current slice information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">OriginMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html#initialize(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.Slice[],%20int[],%20java.lang.String,%20java.lang.String)">initialize</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;parent,
+                    <a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;outSlice,
+                    int[]&nbsp;dataDims,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetName)</code>
+<div class="block">Initialize origin of dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Slice.html" target="_top">Frames</a></li>
+<li><a href="Slice.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceIterator.html
new file mode 100644
index 0000000..78fc0ea
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceIterator.html
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.SliceIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.SliceIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SliceIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.SliceIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.SliceIterator</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></strong></code>
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a></strong>(int[]&nbsp;pos,
+                                                boolean[]&nbsp;axes)</code>
+<div class="block">Get a slice iterator that is defined by a starting position and a set of axes to include</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIteratorFromAxes(int[],%20boolean[])">getSliceIteratorFromAxes</a></strong>(int[]&nbsp;pos,
+                                                boolean[]&nbsp;axes)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></code></td>
+<td class="colLast"><span class="strong">ShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></code></td>
+<td class="colLast"><span class="strong">RGBDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/RGBDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">ObjectDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></code></td>
+<td class="colLast"><span class="strong">ObjectDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ObjectDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></code></td>
+<td class="colLast"><span class="strong">LongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">IntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></code></td>
+<td class="colLast"><span class="strong">FloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/FloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">DoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundShortDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundShortDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundLongDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundLongDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundIntegerDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexFloatDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexFloatDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></code></td>
+<td class="colLast"><span class="strong">ComplexDoubleDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></code></td>
+<td class="colLast"><span class="strong">ByteDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ByteDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">BooleanDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></code></td>
+<td class="colLast"><span class="strong">BooleanDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/BooleanDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;iterator)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SliceIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceND.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceND.html
new file mode 100644
index 0000000..6cd197a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceND.html
@@ -0,0 +1,535 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.SliceND (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.SliceND (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SliceND.html" target="_top">Frames</a></li>
+<li><a href="SliceND.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.SliceND" class="title">Uses of Class<br>org.eclipse.january.dataset.SliceND</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice(org.eclipse.january.dataset.SliceND)">calcTrueSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#clone()">clone</a></strong>()</code>
+<div class="block">Creates a deep copy of the SliceND.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[])">createSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop)</code>
+<div class="block">Creats SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#createSlice(org.eclipse.january.dataset.ILazyDataset,%20int[],%20int[],%20int[])">createSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;data,
+                      int[]&nbsp;start,
+                      int[]&nbsp;stop,
+                      int[]&nbsp;step)</code>
+<div class="block">Creating SliceND from dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#createSlice(int[],%20int[],%20int[])">createSlice</a></strong>(int[]&nbsp;nstart,
+                      int[]&nbsp;nstop,
+                      int[]&nbsp;nstep)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#createSlice(int[],%20int[],%20int[])">createSlice</a></strong>(int[]&nbsp;nstart,
+                      int[]&nbsp;nstop,
+                      int[]&nbsp;nstep)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#flip()">flip</a></strong>()</code>
+<div class="block">Flips slices directions in all dimensions, this means that all slices are
+ beginning at previous end point, steps are in the opposite direction, and
+ finishes are at the previous start point.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceND.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceND.html#flip(int)">flip</a></strong>(int&nbsp;i)</code>
+<div class="block">Flips the slice direction in given dimension, this means that slice
+ begins at previous end point, steps in the opposite direction, and
+ finishes at the previous start point.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceNDIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getCurrentSlice()">getCurrentSlice</a></strong>()</code>
+<div class="block">Get current slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceNDIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOmittedSlice()">getOmittedSlice</a></strong>()</code>
+<div class="block">Get omitted part of source slice which never changes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceNDIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getOutputSlice()">getOutputSlice</a></strong>()</code>
+<div class="block">Get output or destination slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">SliceNDIterator.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#getUsedSlice()">getUsedSlice</a></strong>()</code>
+<div class="block">Shortened slice where axes are omitted</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#calcTrueSlice(org.eclipse.january.dataset.SliceND)">calcTrueSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20org.eclipse.january.dataset.Dataset,%20int[],%20int[])">createStrides</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                          <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                          int[]&nbsp;stride,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from slice information and a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#createStrides(org.eclipse.january.dataset.SliceND,%20int,%20int[],%20int[],%20int,%20int[],%20int[])">createStrides</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                          int&nbsp;isize,
+                          int[]&nbsp;shape,
+                          int[]&nbsp;oStride,
+                          int&nbsp;oOffset,
+                          int[]&nbsp;stride,
+                          int[]&nbsp;offset)</code>
+<div class="block">Create a stride array from slice and dataset information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSlice(org.eclipse.january.dataset.SliceND)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceIterator(org.eclipse.january.dataset.SliceND)">getSliceIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">CompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></code></td>
+<td class="colLast"><span class="strong">AggregateDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AggregateDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Get a slice of the dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getSliceView(org.eclipse.january.dataset.SliceND)">getSliceView</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Dataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Dataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">This is modelled after the NumPy array slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSliceSync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceSync</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;monitor,
+                        <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                        <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Set a slice of the dataset synchronously</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#sliceMetadata(boolean,%20org.eclipse.january.dataset.SliceND)">sliceMetadata</a></strong>(boolean&nbsp;asView,
+                          <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Slice all datasets in metadata that are annotated by @Sliceable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(int,%20org.eclipse.january.dataset.SliceND,%20int...)">PositionIterator</a></strong>(int&nbsp;offset,
+                                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                                int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/PositionIterator.html#PositionIterator(org.eclipse.january.dataset.SliceND,%20int...)">PositionIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                                int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          int&nbsp;isize,
+                          <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator</a></strong>(int[]&nbsp;shape,
+                          int&nbsp;length,
+                          <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
+ Datasets elements, by default the start set to 0 and with a step of 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html#SliceNDIterator(org.eclipse.january.dataset.SliceND,%20int...)">SliceNDIterator</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice,
+                              int...&nbsp;axes)</code>
+<div class="block">Constructor for an iterator that misses out several axes</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html#StrideIterator(int,%20int[],%20int[],%20int,%20org.eclipse.january.dataset.SliceND)">StrideIterator</a></strong>(int&nbsp;isize,
+                            int[]&nbsp;shape,
+                            int[]&nbsp;strides,
+                            int&nbsp;offset,
+                            <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><span class="strong">ILazyLoader.</span><code><strong><a href="../../../../../org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                    <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazySaver.</span><code><strong><a href="../../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyAsyncSaver.</span><code><strong><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceAsync</a></strong>(<a href="../../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                          <a href="../../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                          <a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Non-blocking version of <a href="../../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SliceND.html" target="_top">Frames</a></li>
+<li><a href="SliceND.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceNDIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceNDIterator.html
new file mode 100644
index 0000000..9c4a293
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/SliceNDIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.SliceNDIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.SliceNDIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SliceNDIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceNDIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.SliceNDIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.SliceNDIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.SliceNDIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/SliceNDIterator.html" target="_top">Frames</a></li>
+<li><a href="SliceNDIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Stats.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Stats.html
new file mode 100644
index 0000000..d47b6cb
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/Stats.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.Stats (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.Stats (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Stats.html" target="_top">Frames</a></li>
+<li><a href="Stats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.Stats" class="title">Uses of Class<br>org.eclipse.january.dataset.Stats</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.Stats</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/Stats.html" target="_top">Frames</a></li>
+<li><a href="Stats.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StrideIterator.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StrideIterator.html
new file mode 100644
index 0000000..068fac3
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StrideIterator.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.StrideIterator (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.StrideIterator (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/StrideIterator.html" target="_top">Frames</a></li>
+<li><a href="StrideIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.StrideIterator" class="title">Uses of Class<br>org.eclipse.january.dataset.StrideIterator</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.StrideIterator</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/StrideIterator.html" target="_top">Frames</a></li>
+<li><a href="StrideIterator.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StringDataset.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StringDataset.html
new file mode 100644
index 0000000..8894437
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StringDataset.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.StringDataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.StringDataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/StringDataset.html" target="_top">Frames</a></li>
+<li><a href="StringDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.StringDataset" class="title">Uses of Class<br>org.eclipse.january.dataset.StringDataset</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></code></td>
+<td class="colLast"><span class="strong">StringDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/StringDataset.html" target="_top">Frames</a></li>
+<li><a href="StringDataset.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StringDatasetBase.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StringDatasetBase.html
new file mode 100644
index 0000000..fe6a5e1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/StringDatasetBase.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.StringDatasetBase (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.StringDatasetBase (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/StringDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="StringDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.StringDatasetBase" class="title">Uses of Class<br>org.eclipse.january.dataset.StringDatasetBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></strong></code>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#fill(java.lang.Object)">fill</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getSlice(org.eclipse.january.dataset.SliceIterator)">getSlice</a></strong>(<a href="../../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getUniqueItems()">getUniqueItems</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#getView(boolean)">getView</a></strong>(boolean&nbsp;deepCopyMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#iadd(java.lang.Object)">iadd</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#idivide(java.lang.Object)">idivide</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#ifloor()">ifloor</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#imultiply(java.lang.Object)">imultiply</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#ipower(java.lang.Object)">ipower</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#iremainder(java.lang.Object)">iremainder</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#isubtract(java.lang.Object)">isubtract</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setBy1DIndex(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setBy1DIndex</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;index)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByBoolean(java.lang.Object,%20org.eclipse.january.dataset.Dataset)">setByBoolean</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;selection)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setByIndexes(java.lang.Object,%20java.lang.Object...)">setByIndexes</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;indexes)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#setSlice(java.lang.Object,%20org.eclipse.january.dataset.IndexIterator)">setSlice</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj,
+                <a href="../../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a>&nbsp;siter)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">StringDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></code></td>
+<td class="colLast"><span class="strong">DateDatasetImpl.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/DateDatasetImpl.html#sort(java.lang.Integer)">sort</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;axis)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/StringDatasetBase.html" target="_top">Frames</a></li>
+<li><a href="StringDatasetBase.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html
new file mode 100644
index 0000000..a85185b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.dataset.UnaryOperation.Stub (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.dataset.UnaryOperation.Stub (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.dataset.UnaryOperation.Stub" class="title">Uses of Class<br>org.eclipse.january.dataset.UnaryOperation.Stub</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.dataset.UnaryOperation.Stub</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/UnaryOperation.Stub.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.Stub.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/class-use/UnaryOperation.html b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/UnaryOperation.html
new file mode 100644
index 0000000..006a54b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/class-use/UnaryOperation.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.dataset.UnaryOperation (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.dataset.UnaryOperation (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/UnaryOperation.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.dataset.UnaryOperation" class="title">Uses of Interface<br>org.eclipse.january.dataset.UnaryOperation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that implement <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></strong></code>
+<div class="block">Negation with boolean not</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></strong></code>
+<div class="block">Stub class where only two methods need to be overridden:
+  <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)"><code>UnaryOperation.Stub.complexOperate(double[], double, double)</code></a>,
+  <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)"><code>UnaryOperation.Stub.toString(String)</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><span class="strong">Operations.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/Operations.html#operate(org.eclipse.january.dataset.UnaryOperation,%20java.lang.Object,%20org.eclipse.january.dataset.Dataset)">operate</a></strong>(<a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>&nbsp;op,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;a,
+              <a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;o)</code>
+<div class="block">Operate on a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/dataset/class-use/UnaryOperation.html" target="_top">Frames</a></li>
+<li><a href="UnaryOperation.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/package-frame.html b/apidocs/2.1.1/org/eclipse/january/dataset/package-frame.html
new file mode 100644
index 0000000..b881973
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/package-frame.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/eclipse/january/dataset/package-summary.html" target="classFrame">org.eclipse.january.dataset</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="BinaryOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>BinaryOperation</i></a></li>
+<li><a href="CompoundDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>CompoundDataset</i></a></li>
+<li><a href="Dataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>Dataset</i></a></li>
+<li><a href="DateDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>DateDataset</i></a></li>
+<li><a href="IDataListener.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDataListener</i></a></li>
+<li><a href="IDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDataset</i></a></li>
+<li><a href="IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDatasetChangeChecker</i></a></li>
+<li><a href="IDatasetConnector.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDatasetConnector</i></a></li>
+<li><a href="IDynamicDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDynamicDataset</i></a></li>
+<li><a href="IDynamicShape.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IDynamicShape</i></a></li>
+<li><a href="IFileConnection.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IFileConnection</i></a></li>
+<li><a href="ILazyDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>ILazyDataset</i></a></li>
+<li><a href="ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>ILazyWriteableDataset</i></a></li>
+<li><a href="IMetadataProvider.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IMetadataProvider</i></a></li>
+<li><a href="IOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IOperation</i></a></li>
+<li><a href="IRemoteData.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>IRemoteData</i></a></li>
+<li><a href="UnaryOperation.html" title="interface in org.eclipse.january.dataset" target="classFrame"><i>UnaryOperation</i></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AbstractCompoundDataset</a></li>
+<li><a href="AbstractDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AbstractDataset</a></li>
+<li><a href="AggregateDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">AggregateDataset</a></li>
+<li><a href="BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">BinaryOperation.Stub</a></li>
+<li><a href="BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanBroadcastIterator</a></li>
+<li><a href="BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanContiguousIterator</a></li>
+<li><a href="BooleanDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDataset</a></li>
+<li><a href="BooleanDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanDatasetBase</a></li>
+<li><a href="BooleanIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanIterator</a></li>
+<li><a href="BooleanNullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BooleanNullIterator</a></li>
+<li><a href="BroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIterator</a></li>
+<li><a href="BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastIteratorBase</a></li>
+<li><a href="BroadcastPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastPairIterator</a></li>
+<li><a href="BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSelfIterator</a></li>
+<li><a href="BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastSingleIterator</a></li>
+<li><a href="BroadcastUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">BroadcastUtils</a></li>
+<li><a href="ByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ByteDataset</a></li>
+<li><a href="CollectionStats.html" title="class in org.eclipse.january.dataset" target="classFrame">CollectionStats</a></li>
+<li><a href="Comparisons.html" title="class in org.eclipse.january.dataset" target="classFrame">Comparisons</a></li>
+<li><a href="ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexDoubleDataset</a></li>
+<li><a href="ComplexFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ComplexFloatDataset</a></li>
+<li><a href="CompoundByteDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundByteDataset</a></li>
+<li><a href="CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundDoubleDataset</a></li>
+<li><a href="CompoundFloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundFloatDataset</a></li>
+<li><a href="CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundIntegerDataset</a></li>
+<li><a href="CompoundLongDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundLongDataset</a></li>
+<li><a href="CompoundShortDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">CompoundShortDataset</a></li>
+<li><a href="ContiguousIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousIterator</a></li>
+<li><a href="ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousIteratorWithPosition</a></li>
+<li><a href="ContiguousPairIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousPairIterator</a></li>
+<li><a href="ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">ContiguousSingleIterator</a></li>
+<li><a href="DataEvent.html" title="class in org.eclipse.january.dataset" target="classFrame">DataEvent</a></li>
+<li><a href="DataListenerDelegate.html" title="class in org.eclipse.january.dataset" target="classFrame">DataListenerDelegate</a></li>
+<li><a href="DatasetFactory.html" title="class in org.eclipse.january.dataset" target="classFrame">DatasetFactory</a></li>
+<li><a href="DatasetUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DatasetUtils</a></li>
+<li><a href="DateDatasetImpl.html" title="class in org.eclipse.january.dataset" target="classFrame">DateDatasetImpl</a></li>
+<li><a href="DoubleDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">DoubleDataset</a></li>
+<li><a href="DTypeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">DTypeUtils</a></li>
+<li><a href="FloatDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">FloatDataset</a></li>
+<li><a href="IndexIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IndexIterator</a></li>
+<li><a href="IntegerDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegerDataset</a></li>
+<li><a href="IntegerIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegerIterator</a></li>
+<li><a href="IntegersIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">IntegersIterator</a></li>
+<li><a href="InterpolatorUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">InterpolatorUtils</a></li>
+<li><a href="LazyDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDataset</a></li>
+<li><a href="LazyDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDatasetBase</a></li>
+<li><a href="LazyDynamicDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyDynamicDataset</a></li>
+<li><a href="LazyMaths.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyMaths</a></li>
+<li><a href="LazyWriteableDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LazyWriteableDataset</a></li>
+<li><a href="LinearAlgebra.html" title="class in org.eclipse.january.dataset" target="classFrame">LinearAlgebra</a></li>
+<li><a href="LongDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">LongDataset</a></li>
+<li><a href="Maths.html" title="class in org.eclipse.january.dataset" target="classFrame">Maths</a></li>
+<li><a href="NullIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">NullIterator</a></li>
+<li><a href="ObjectDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDataset</a></li>
+<li><a href="ObjectDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">ObjectDatasetBase</a></li>
+<li><a href="Operations.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations</a></li>
+<li><a href="Operations.Addition.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Addition</a></li>
+<li><a href="Operations.Division.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Division</a></li>
+<li><a href="Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionTowardsFloor</a></li>
+<li><a href="Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.DivisionWithZero</a></li>
+<li><a href="Operations.Exponentiation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Exponentiation</a></li>
+<li><a href="Operations.Maximum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Maximum</a></li>
+<li><a href="Operations.Minimum.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Minimum</a></li>
+<li><a href="Operations.Multiplication.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Multiplication</a></li>
+<li><a href="Operations.Negation.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Negation</a></li>
+<li><a href="Operations.Remainder.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Remainder</a></li>
+<li><a href="Operations.Subtraction.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.Subtraction</a></li>
+<li><a href="Operations.UseBase.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseBase</a></li>
+<li><a href="Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfEqualTo</a></li>
+<li><a href="Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThan</a></li>
+<li><a href="Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfGreaterThanOrEqualTo</a></li>
+<li><a href="Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThan</a></li>
+<li><a href="Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset" target="classFrame">Operations.UseIfLessThanOrEqualTo</a></li>
+<li><a href="Outliers.html" title="class in org.eclipse.january.dataset" target="classFrame">Outliers</a></li>
+<li><a href="PositionIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">PositionIterator</a></li>
+<li><a href="Random.html" title="class in org.eclipse.january.dataset" target="classFrame">Random</a></li>
+<li><a href="RGBDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">RGBDataset</a></li>
+<li><a href="RunningAverage.html" title="class in org.eclipse.january.dataset" target="classFrame">RunningAverage</a></li>
+<li><a href="ShapeChangeChecker.html" title="class in org.eclipse.january.dataset" target="classFrame">ShapeChangeChecker</a></li>
+<li><a href="ShapeUtils.html" title="class in org.eclipse.january.dataset" target="classFrame">ShapeUtils</a></li>
+<li><a href="ShortDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">ShortDataset</a></li>
+<li><a href="SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SingleInputBroadcastIterator</a></li>
+<li><a href="SingleItemIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SingleItemIterator</a></li>
+<li><a href="Slice.html" title="class in org.eclipse.january.dataset" target="classFrame">Slice</a></li>
+<li><a href="SliceIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceIterator</a></li>
+<li><a href="SliceND.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceND</a></li>
+<li><a href="SliceNDIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">SliceNDIterator</a></li>
+<li><a href="Stats.html" title="class in org.eclipse.january.dataset" target="classFrame">Stats</a></li>
+<li><a href="StrideIterator.html" title="class in org.eclipse.january.dataset" target="classFrame">StrideIterator</a></li>
+<li><a href="StringDataset.html" title="class in org.eclipse.january.dataset" target="classFrame">StringDataset</a></li>
+<li><a href="StringDatasetBase.html" title="class in org.eclipse.january.dataset" target="classFrame">StringDatasetBase</a></li>
+<li><a href="UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset" target="classFrame">UnaryOperation.Stub</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset" target="classFrame">Comparisons.Monotonicity</a></li>
+<li><a href="LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset" target="classFrame">LinearAlgebra.NormOrder</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/package-summary.html b/apidocs/2.1.1/org/eclipse/january/dataset/package-summary.html
new file mode 100644
index 0000000..d6b4736
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/package-summary.html
@@ -0,0 +1,825 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january.dataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../org/eclipse/january/io/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.january.dataset</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a></td>
+<td class="colLast">
+<div class="block">Interface to represent a binary operation for implementations over different output domains</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></td>
+<td class="colLast">
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a></td>
+<td class="colLast">
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset">IDataListener</a></td>
+<td class="colLast">
+<div class="block">Listener for data changes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></td>
+<td class="colLast">
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a></td>
+<td class="colLast">
+<div class="block">Interface for a dataset checker to detect change</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset">IDatasetConnector</a></td>
+<td class="colLast">
+<div class="block">A dataset connector contains a lazy dataset which exists in a remote
+ location.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a></td>
+<td class="colLast">
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a></td>
+<td class="colLast">
+<div class="block">This interface is intended for data sources that change shape dynamically.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></td>
+<td class="colLast">
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a></td>
+<td class="colLast">
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a></td>
+<td class="colLast">
+<div class="block">Interface which acts to provide metadata from an object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset">IOperation</a></td>
+<td class="colLast">
+<div class="block">Marker interface for all operations</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset">IRemoteData</a></td>
+<td class="colLast">
+<div class="block">This class provides access to remote data which
+ may consist of more than one remote dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a></td>
+<td class="colLast">
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a></td>
+<td class="colLast">
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a></td>
+<td class="colLast">
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a></td>
+<td class="colLast">
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset">BinaryOperation.Stub</a></td>
+<td class="colLast">
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset">BooleanBroadcastIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset">BooleanContiguousIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">BooleanDataset</a></td>
+<td class="colLast">
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset">BooleanIterator</a></td>
+<td class="colLast">
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()"><code>IndexIterator.hasNext()</code></a> returns true.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset">BooleanNullIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset">BroadcastIterator</a></td>
+<td class="colLast">
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset">BroadcastIteratorBase</a></td>
+<td class="colLast">
+<div class="block">Base class for all broadcast iterators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset">BroadcastPairIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a third dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset">BroadcastSelfIterator</a></td>
+<td class="colLast">
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset">BroadcastSingleIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset">BroadcastUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">ByteDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset">CollectionStats</a></td>
+<td class="colLast">
+<div class="block">Statistics of data set lists.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset">Comparisons</a></td>
+<td class="colLast">
+<div class="block">Comparison and logical methods</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">ComplexDoubleDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">ComplexFloatDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">CompoundByteDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">CompoundIntegerDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">CompoundLongDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a></td>
+<td class="colLast">
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset">ContiguousIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset">ContiguousIteratorWithPosition</a></td>
+<td class="colLast">
+<div class="block">Class to run over contiguous datasets and keep track of position.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset">ContiguousPairIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of contiguous datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset">ContiguousSingleIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a pair of contiguous datasets with only the second dataset read</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">DataEvent</a></td>
+<td class="colLast">
+<div class="block">Event fired to diseminate information about a dataset changing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset">DataListenerDelegate</a></td>
+<td class="colLast">
+<div class="block">Class used by DynamicDataset to delegate</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset">DatasetFactory</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset">DatasetUtils</a></td>
+<td class="colLast">
+<div class="block">Utilities for manipulating datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">DateDatasetImpl</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">DoubleDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset">DTypeUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">FloatDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></td>
+<td class="colLast">
+<div class="block">Class to provide iteration through whole data array that backs a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">IntegerDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset">IntegerIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over an integer dataset and return its items</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset">IntegersIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over an array of integer datasets and return its items</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset">InterpolatorUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a></td>
+<td class="colLast">
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset">LazyMaths</a></td>
+<td class="colLast">
+<div class="block">Mathematics class for lazy datasets</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">LazyWriteableDataset</a></td>
+<td class="colLast">
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset">LinearAlgebra</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">LongDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset">Maths</a></td>
+<td class="colLast">
+<div class="block">Mathematics class</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">ObjectDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset">Operations</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset">Operations.Addition</a></td>
+<td class="colLast">
+<div class="block">Addition with boolean or</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset">Operations.Division</a></td>
+<td class="colLast">
+<div class="block">Division with boolean and of negated second operand</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset">Operations.DivisionTowardsFloor</a></td>
+<td class="colLast">
+<div class="block">Division with boolean and of negated second operand and rounds down to
+ negative infinity</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset">Operations.DivisionWithZero</a></td>
+<td class="colLast">
+<div class="block">Division with boolean and of negated second operand and returns zero if
+ denominator is zero</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset">Operations.Exponentiation</a></td>
+<td class="colLast">
+<div class="block">Exponentiation with boolean and</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset">Operations.Maximum</a></td>
+<td class="colLast">
+<div class="block">Select maximum of a and b</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset">Operations.Minimum</a></td>
+<td class="colLast">
+<div class="block">Select minimum of a and b</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset">Operations.Multiplication</a></td>
+<td class="colLast">
+<div class="block">Multiplication with boolean and</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset">Operations.Negation</a></td>
+<td class="colLast">
+<div class="block">Negation with boolean not</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset">Operations.Remainder</a></td>
+<td class="colLast">
+<div class="block">Remainder</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset">Operations.Subtraction</a></td>
+<td class="colLast">
+<div class="block">Subtraction with boolean or of negated second operand</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset">Operations.UseBase</a></td>
+<td class="colLast">
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfEqualTo</a></td>
+<td class="colLast">
+<div class="block">Use given value if a == b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThan</a></td>
+<td class="colLast">
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfGreaterThanOrEqualTo</a></td>
+<td class="colLast">
+<div class="block">Use given value if a >= b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThan</a></td>
+<td class="colLast">
+<div class="block">Use given value if a < b else use a</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset">Operations.UseIfLessThanOrEqualTo</a></td>
+<td class="colLast">
+<div class="block">Use given value if a <= b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset">Outliers</a></td>
+<td class="colLast">
+<div class="block">Estimators of the scale of a Dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset">PositionIterator</a></td>
+<td class="colLast">
+<div class="block">Class to provide iteration through a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset">Random</a></td>
+<td class="colLast">
+<div class="block">Class to hold methods to create random datasets
+ 
+ Emulates numpy.random</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">RGBDataset</a></td>
+<td class="colLast">
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset">RunningAverage</a></td>
+<td class="colLast">
+<div class="block">A running mean class</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset">ShapeChangeChecker</a></td>
+<td class="colLast">
+<div class="block">Checks whether shape has changed between waits.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset">ShapeUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">ShortDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset">SingleInputBroadcastIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a single dataset with NumPy broadcasting to promote shapes
+ which have lower rank and outputs to a second dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset">SingleItemIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a broadcasted single-item dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a></td>
+<td class="colLast">
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset">SliceIterator</a></td>
+<td class="colLast">
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a></td>
+<td class="colLast">
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset">SliceNDIterator</a></td>
+<td class="colLast">
+<div class="block">Class to provide slice iteration through a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset">Stats</a></td>
+<td class="colLast">
+<div class="block">Statistics class
+ 
+ TODO Where is mode? http://en.wikipedia.org/wiki/Mode_(statistics)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></td>
+<td class="colLast">
+<div class="block">Class to run over a contiguous dataset using strides</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a></td>
+<td class="colLast">
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset">UnaryOperation.Stub</a></td>
+<td class="colLast">
+<div class="block">Stub class where only two methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#complexOperate(double[],%20double,%20double)"><code>UnaryOperation.Stub.complexOperate(double[], double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html#toString(java.lang.String)"><code>UnaryOperation.Stub.toString(String)</code></a></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset">Comparisons.Monotonicity</a></td>
+<td class="colLast">
+<div class="block">Enumeration of monotonicity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset">LinearAlgebra.NormOrder</a></td>
+<td class="colLast">
+<div class="block">Order value for norm</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../org/eclipse/january/io/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/package-tree.html b/apidocs/2.1.1/org/eclipse/january/dataset/package-tree.html
new file mode 100644
index 0000000..cfdbc18
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/package-tree.html
@@ -0,0 +1,405 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.dataset Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january.dataset Class Hierarchy (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/eclipse/january/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.eclipse.january.dataset</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">BinaryOperation.Stub</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Exponentiation</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">CollectionStats</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Comparisons</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">DataListenerDelegate</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">DatasetFactory</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">DatasetUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">DTypeUtils</span></a></li>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util"><span class="strong">EventObject</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">DataEvent</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.internal.GeneratedMaths
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Maths</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IndexIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanBroadcastIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanContiguousIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanNullIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastIteratorBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastPairIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousPairIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastSelfIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastSingleIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousSingleIterator</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousIteratorWithPosition</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegerIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegersIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">PositionIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SingleInputBroadcastIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SingleItemIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">NullIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">StrideIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceNDIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">InterpolatorUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDatasetBase</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AbstractDataset</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AbstractCompoundDataset</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundByteDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundDoubleDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ComplexDoubleDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundFloatDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ComplexFloatDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundIntegerDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundLongDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundShortDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">RGBDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanDatasetBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ByteDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">DoubleDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">FloatDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegerDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LongDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">ObjectDatasetBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ObjectDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ShortDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">StringDatasetBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">StringDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">DateDatasetImpl</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AggregateDataset</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDynamicDataset</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyWriteableDataset</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyMaths</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">LinearAlgebra</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Addition</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Division</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.DivisionTowardsFloor</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.DivisionWithZero</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Maximum</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Minimum</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Multiplication</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Negation</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Remainder</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Subtraction</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseBase</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfEqualTo</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfGreaterThan</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfGreaterThanOrEqualTo</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfLessThan</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfLessThanOrEqualTo</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Outliers</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Random</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">RunningAverage</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">ShapeChangeChecker</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">ShapeUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Slice</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceND</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Stats</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">UnaryOperation.Stub</span></a> (implements org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util"><span class="strong">EventListener</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataListener</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetChangeChecker</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicShape</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetConnector</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">IFileConnection</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetConnector</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">IRemoteData</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">IMetadataProvider</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> (also extends org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">INameable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">IOperation</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">BinaryOperation</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">UnaryOperation</span></a></li>
+</ul>
+</li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="strong">Serializable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, org.eclipse.january.<a href="../../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">LinearAlgebra.NormOrder</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Comparisons.Monotonicity</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/eclipse/january/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/dataset/package-use.html b/apidocs/2.1.1/org/eclipse/january/dataset/package-use.html
new file mode 100644
index 0000000..8f5d30c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/dataset/package-use.html
@@ -0,0 +1,525 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.eclipse.january.dataset (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.eclipse.january.dataset (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.eclipse.january.dataset" class="title">Uses of Package<br>org.eclipse.january.dataset</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> used by <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/AbstractCompoundDataset.html#org.eclipse.january.dataset">AbstractCompoundDataset</a>
+<div class="block">Generic container class for data that is compound in nature
+ 
+ Each subclass has an array of compound types, items of this array are composed of primitive types
+ 
+ Data items can be Complex, Vector, etc</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/AbstractDataset.html#org.eclipse.january.dataset">AbstractDataset</a>
+<div class="block">Generic container class for data 
+ <p/>
+ Each subclass has an array of primitive types, elements of this array are grouped or
+ compounded to make items 
+ <p/>
+ Data items can be boolean, integer, float, complex float, vector float, etc</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/AggregateDataset.html#org.eclipse.january.dataset">AggregateDataset</a>
+<div class="block">Class to aggregate a set of lazy datasets and present them as a single lazy dataset where
+ the first position value accesses the aggregation</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BinaryOperation.html#org.eclipse.january.dataset">BinaryOperation</a>
+<div class="block">Interface to represent a binary operation for implementations over different output domains</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BinaryOperation.Stub.html#org.eclipse.january.dataset">BinaryOperation.Stub</a>
+<div class="block">Stub class where only three methods need to be overridden:
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#complexOperate(double[],%20double,%20double,%20double,%20double)"><code>BinaryOperation.Stub.complexOperate(double[], double, double, double, double)</code></a>,
+  <a href="../../../../org/eclipse/january/dataset/BinaryOperation.Stub.html#toString(java.lang.String,%20java.lang.String)"><code>BinaryOperation.Stub.toString(String, String)</code></a></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BooleanDataset.html#org.eclipse.january.dataset">BooleanDataset</a>
+<div class="block">Extend boolean base dataset for boolean values</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BooleanDatasetBase.html#org.eclipse.january.dataset">BooleanDatasetBase</a>
+<div class="block">Extend dataset for boolean values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BooleanIterator.html#org.eclipse.january.dataset">BooleanIterator</a>
+<div class="block">Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and
+ is used to select where {<a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()"><code>IndexIterator.hasNext()</code></a> returns true.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BroadcastIterator.html#org.eclipse.january.dataset">BroadcastIterator</a>
+<div class="block">Base class for broadcast iterators of pairs with output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BroadcastIteratorBase.html#org.eclipse.january.dataset">BroadcastIteratorBase</a>
+<div class="block">Base class for all broadcast iterators.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/BroadcastSelfIterator.html#org.eclipse.january.dataset">BroadcastSelfIterator</a>
+<div class="block">Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ByteDataset.html#org.eclipse.january.dataset">ByteDataset</a>
+<div class="block">Extend dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Comparisons.Monotonicity.html#org.eclipse.january.dataset">Comparisons.Monotonicity</a>
+<div class="block">Enumeration of monotonicity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ComplexDoubleDataset.html#org.eclipse.january.dataset">ComplexDoubleDataset</a>
+<div class="block">Extend compound dataset to hold complex double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ComplexFloatDataset.html#org.eclipse.january.dataset">ComplexFloatDataset</a>
+<div class="block">Extend compound dataset to hold complex float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundByteDataset.html#org.eclipse.january.dataset">CompoundByteDataset</a>
+<div class="block">Extend compound dataset for byte values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundDataset.html#org.eclipse.january.dataset">CompoundDataset</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundDoubleDataset.html#org.eclipse.january.dataset">CompoundDoubleDataset</a>
+<div class="block">Extend compound dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundFloatDataset.html#org.eclipse.january.dataset">CompoundFloatDataset</a>
+<div class="block">Extend compound dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundIntegerDataset.html#org.eclipse.january.dataset">CompoundIntegerDataset</a>
+<div class="block">Extend compound dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundLongDataset.html#org.eclipse.january.dataset">CompoundLongDataset</a>
+<div class="block">Extend compound dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/CompoundShortDataset.html#org.eclipse.january.dataset">CompoundShortDataset</a>
+<div class="block">Extend compound dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DataEvent.html#org.eclipse.january.dataset">DataEvent</a>
+<div class="block">Event fired to diseminate information about a dataset changing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DataListenerDelegate.html#org.eclipse.january.dataset">DataListenerDelegate</a>
+<div class="block">Class used by DynamicDataset to delegate</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Dataset.html#org.eclipse.january.dataset">Dataset</a>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DateDataset.html#org.eclipse.january.dataset">DateDataset</a>
+<div class="block">Interface for a dataset containing <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>s.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/DoubleDataset.html#org.eclipse.january.dataset">DoubleDataset</a>
+<div class="block">Extend dataset for double values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/FloatDataset.html#org.eclipse.january.dataset">FloatDataset</a>
+<div class="block">Extend dataset for float values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDataListener.html#org.eclipse.january.dataset">IDataListener</a>
+<div class="block">Listener for data changes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDataset.html#org.eclipse.january.dataset">IDataset</a>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDatasetChangeChecker.html#org.eclipse.january.dataset">IDatasetChangeChecker</a>
+<div class="block">Interface for a dataset checker to detect change</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDatasetConnector.html#org.eclipse.january.dataset">IDatasetConnector</a>
+<div class="block">A dataset connector contains a lazy dataset which exists in a remote
+ location.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDynamicDataset.html#org.eclipse.january.dataset">IDynamicDataset</a>
+<div class="block">This interface is intended for data sources that change dynamically.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDynamicShape.html#org.eclipse.january.dataset">IDynamicShape</a>
+<div class="block">This interface is intended for data sources that change shape dynamically.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IFileConnection.html#org.eclipse.january.dataset">IFileConnection</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ILazyDataset.html#org.eclipse.january.dataset">ILazyDataset</a>
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ILazyWriteableDataset.html#org.eclipse.january.dataset">ILazyWriteableDataset</a>
+<div class="block">This sub-interface adds the ability to write to a lazy dataset slice-by-slice</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IMetadataProvider.html#org.eclipse.january.dataset">IMetadataProvider</a>
+<div class="block">Interface which acts to provide metadata from an object</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IndexIterator.html#org.eclipse.january.dataset">IndexIterator</a>
+<div class="block">Class to provide iteration through whole data array that backs a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IntegerDataset.html#org.eclipse.january.dataset">IntegerDataset</a>
+<div class="block">Extend dataset for int values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IOperation.html#org.eclipse.january.dataset">IOperation</a>
+<div class="block">Marker interface for all operations</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/LazyDataset.html#org.eclipse.january.dataset">LazyDataset</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/LazyDatasetBase.html#org.eclipse.january.dataset">LazyDatasetBase</a>
+<div class="block">Common base for both lazy and normal dataset implementations</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/LazyDynamicDataset.html#org.eclipse.january.dataset">LazyDynamicDataset</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/LazyWriteableDataset.html#org.eclipse.january.dataset">LazyWriteableDataset</a>
+<div class="block">Subclass of lazy dataset that allows setting slices</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/LinearAlgebra.NormOrder.html#org.eclipse.january.dataset">LinearAlgebra.NormOrder</a>
+<div class="block">Order value for norm</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/LongDataset.html#org.eclipse.january.dataset">LongDataset</a>
+<div class="block">Extend dataset for long values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ObjectDataset.html#org.eclipse.january.dataset">ObjectDataset</a>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ObjectDatasetBase.html#org.eclipse.january.dataset">ObjectDatasetBase</a>
+<div class="block">Extend dataset for Object values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Operations.Division.html#org.eclipse.january.dataset">Operations.Division</a>
+<div class="block">Division with boolean and of negated second operand</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Operations.UseBase.html#org.eclipse.january.dataset">Operations.UseBase</a>
+<div class="block">Use given value if a > b else use a</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/PositionIterator.html#org.eclipse.january.dataset">PositionIterator</a>
+<div class="block">Class to provide iteration through a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/RGBDataset.html#org.eclipse.january.dataset">RGBDataset</a>
+<div class="block">Class to hold colour datasets as red, green, blue tuples of short integers</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ShortDataset.html#org.eclipse.january.dataset">ShortDataset</a>
+<div class="block">Extend dataset for short values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Slice.html#org.eclipse.january.dataset">Slice</a>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/SliceIterator.html#org.eclipse.january.dataset">SliceIterator</a>
+<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/SliceND.html#org.eclipse.january.dataset">SliceND</a>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/StringDataset.html#org.eclipse.january.dataset">StringDataset</a>
+<div class="block">Extend dataset for objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/StringDatasetBase.html#org.eclipse.january.dataset">StringDatasetBase</a>
+<div class="block">Extend dataset for String values // PRIM_TYPE</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/UnaryOperation.html#org.eclipse.january.dataset">UnaryOperation</a>
+<div class="block">Interface to represent a unary operation for implementations over different output domains</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> used by <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDataset.html#org.eclipse.january.io">IDataset</a>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/SliceND.html#org.eclipse.january.io">SliceND</a>
+<div class="block">The <code>SliceND</code> class represents a slice through all dimensions of a multi-dimensional <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.<br>
+ If a maximum shape is specified, slicing past the original shape is supported for positive
+ steps otherwise it is ignored.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> used by <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Dataset.html#org.eclipse.january.metadata">Dataset</a>
+<div class="block">
+ Interface for our implementation of dataset that adds a lot of extra functionality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/IDataset.html#org.eclipse.january.metadata">IDataset</a>
+<div class="block">This interface defines the implementation-independent and generic parts of a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/ILazyDataset.html#org.eclipse.january.metadata">ILazyDataset</a>
+<div class="block">This interface defines the lazy parts of a dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/dataset/class-use/Slice.html#org.eclipse.january.metadata">Slice</a>
+<div class="block">The <code>Slice</code> class represents the set of indices (start, stop, step), that are used to extract specifics subsets of <a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><code>Dataset</code></a>.<br><br>
+ The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/dataset/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/IDataAnalysisObject.html b/apidocs/2.1.1/org/eclipse/january/io/IDataAnalysisObject.html
new file mode 100644
index 0000000..fa43712
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/IDataAnalysisObject.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IDataAnalysisObject (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IDataAnalysisObject (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDataAnalysisObject.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/IDataAnalysisObject.html" target="_top">Frames</a></li>
+<li><a href="IDataAnalysisObject.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.io</div>
+<h2 title="Interface IDataAnalysisObject" class="title">Interface IDataAnalysisObject</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/io/IDataAnalysisObject.html#line.18">IDataAnalysisObject</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre>
+<div class="block">Used to mark data in the LoaderFactory so that the incorrect values are not stored in the cache.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/io/IDataAnalysisObject.html#line.20">clone</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IDataAnalysisObject.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/IDataAnalysisObject.html" target="_top">Frames</a></li>
+<li><a href="IDataAnalysisObject.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/ILazyAsyncSaver.html b/apidocs/2.1.1/org/eclipse/january/io/ILazyAsyncSaver.html
new file mode 100644
index 0000000..ad3b15b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/ILazyAsyncSaver.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyAsyncSaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ILazyAsyncSaver (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyAsyncSaver.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazyAsyncSaver.html" target="_top">Frames</a></li>
+<li><a href="ILazyAsyncSaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.io</div>
+<h2 title="Interface ILazyAsyncSaver" class="title">Interface ILazyAsyncSaver</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>, <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/io/ILazyAsyncSaver.html#line.12">ILazyAsyncSaver</a>
+extends <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></pre>
+<div class="block">Used by lazy writeable datasets to write slices to a file in an asynchronous manner</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.io.ILazySaver">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></h3>
+<code><a href="../../../../org/eclipse/january/io/ILazySaver.html#serialVersionUID">serialVersionUID</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html#setSliceAsync(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSliceAsync</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                          <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
+<div class="block">Non-blocking version of <a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.io.ILazySaver">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></h3>
+<code><a href="../../../../org/eclipse/january/io/ILazySaver.html#initialize()">initialize</a>, <a href="../../../../org/eclipse/january/io/ILazySaver.html#isFileWriteable()">isFileWriteable</a>, <a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.io.ILazyLoader">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></h3>
+<code><a href="../../../../org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset</a>, <a href="../../../../org/eclipse/january/io/ILazyLoader.html#isFileReadable()">isFileReadable</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setSliceAsync(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setSliceAsync</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazyAsyncSaver.html#line.21">setSliceAsync</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                 <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                 <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                   throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Non-blocking version of <a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)"><code>ILazySaver.setSlice(IMonitor, IDataset, SliceND)</code></a></div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mon</code> - </dd><dd><code>data</code> - </dd><dd><code>slice</code> - </dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyAsyncSaver.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazyAsyncSaver.html" target="_top">Frames</a></li>
+<li><a href="ILazyAsyncSaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/ILazyDynamicLoader.html b/apidocs/2.1.1/org/eclipse/january/io/ILazyDynamicLoader.html
new file mode 100644
index 0000000..57b1cd8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/ILazyDynamicLoader.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyDynamicLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ILazyDynamicLoader (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyDynamicLoader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazyDynamicLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyDynamicLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.io</div>
+<h2 title="Interface ILazyDynamicLoader" class="title">Interface ILazyDynamicLoader</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/io/ILazyDynamicLoader.html#line.12">ILazyDynamicLoader</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html#refreshShape()">refreshShape</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="refreshShape()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>refreshShape</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazyDynamicLoader.html#line.14">refreshShape</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyDynamicLoader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazyDynamicLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyDynamicLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/ILazyLoader.html b/apidocs/2.1.1/org/eclipse/january/io/ILazyLoader.html
new file mode 100644
index 0000000..f13a134
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/ILazyLoader.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazyLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ILazyLoader (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyLoader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazyLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.io</div>
+<h2 title="Interface ILazyLoader" class="title">Interface ILazyLoader</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a>, <a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/io/ILazyLoader.html#line.25">ILazyLoader</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">Used by lazy datasets to read slices from a file</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazyLoader.html#serialVersionUID">serialVersionUID</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                    <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazyLoader.html#isFileReadable()">isFileReadable</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="serialVersionUID">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialVersionUID</h4>
+<pre>static final&nbsp;long <a href="../../../../src-html/org/eclipse/january/io/ILazyLoader.html#line.26">serialVersionUID</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.io.ILazyLoader.serialVersionUID">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="isFileReadable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFileReadable</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazyLoader.html#line.32">isFileReadable</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if file is readable</dd></dl>
+</li>
+</ul>
+<a name="getDataset(org.eclipse.january.IMonitor, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDataset</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazyLoader.html#line.40">getDataset</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                  <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+                    throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mon</code> - </dd><dd><code>slice</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>a slice of a dataset</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazyLoader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazyLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/ILazySaver.html b/apidocs/2.1.1/org/eclipse/january/io/ILazySaver.html
new file mode 100644
index 0000000..546c070
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/ILazySaver.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ILazySaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ILazySaver (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazySaver.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazySaver.html" target="_top">Frames</a></li>
+<li><a href="ILazySaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.io</div>
+<h2 title="Interface ILazySaver" class="title">Interface ILazySaver</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/io/ILazySaver.html#line.21">ILazySaver</a>
+extends <a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></pre>
+<div class="block">Used by lazy writeable datasets to write slices to a file</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazySaver.html#serialVersionUID">serialVersionUID</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazySaver.html#initialize()">initialize</a></strong>()</code>
+<div class="block">Initialize dataset in file</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazySaver.html#isFileWriteable()">isFileWriteable</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/ILazySaver.html#setSlice(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.IDataset,%20org.eclipse.january.dataset.SliceND)">setSlice</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+                <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+                <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.io.ILazyLoader">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></h3>
+<code><a href="../../../../org/eclipse/january/io/ILazyLoader.html#getDataset(org.eclipse.january.IMonitor,%20org.eclipse.january.dataset.SliceND)">getDataset</a>, <a href="../../../../org/eclipse/january/io/ILazyLoader.html#isFileReadable()">isFileReadable</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="serialVersionUID">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialVersionUID</h4>
+<pre>static final&nbsp;long <a href="../../../../src-html/org/eclipse/january/io/ILazySaver.html#line.22">serialVersionUID</a></pre>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.io.ILazySaver.serialVersionUID">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazySaver.html#line.28">initialize</a>()
+                throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Initialize dataset in file</div>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
+<a name="isFileWriteable()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isFileWriteable</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazySaver.html#line.34">isFileWriteable</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if file is writeable</dd></dl>
+</li>
+</ul>
+<a name="setSlice(org.eclipse.january.IMonitor, org.eclipse.january.dataset.IDataset, org.eclipse.january.dataset.SliceND)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setSlice</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/io/ILazySaver.html#line.42">setSlice</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon,
+            <a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;data,
+            <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)
+              throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mon</code> - </dd><dd><code>data</code> - </dd><dd><code>slice</code> - </dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ILazySaver.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/ILazySaver.html" target="_top">Frames</a></li>
+<li><a href="ILazySaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/IMetaLoader.html b/apidocs/2.1.1/org/eclipse/january/io/IMetaLoader.html
new file mode 100644
index 0000000..12d57fc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/IMetaLoader.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetaLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMetaLoader (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMetaLoader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/IMetaLoader.html" target="_top">Frames</a></li>
+<li><a href="IMetaLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.io</div>
+<h2 title="Interface IMetaLoader" class="title">Interface IMetaLoader</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/io/IMetaLoader.html#line.25">IMetaLoader</a></pre>
+<div class="block">Interface used to mark a loader as being available to load and return
+ metadata without loading the entire file into memory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/IMetaLoader.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block">Returns an object containing some data about the data file
+ to be read in.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/io/IMetaLoader.html#loadMetadata(org.eclipse.january.IMonitor)">loadMetadata</a></strong>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon)</code>
+<div class="block">Loads the meta data from the file but not all the data.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="loadMetadata(org.eclipse.january.IMonitor)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadMetadata</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/io/IMetaLoader.html#line.32">loadMetadata</a>(<a href="../../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>&nbsp;mon)
+                  throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Loads the meta data from the file but not all the data.
+ This can be read in more cheaply than the entire data.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mon</code> - </dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getMetadata()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/io/IMetaLoader.html#line.39">getMetadata</a>()</pre>
+<div class="block">Returns an object containing some data about the data file
+ to be read in.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>IMetadata</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMetaLoader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/IMetaLoader.html" target="_top">Frames</a></li>
+<li><a href="IMetaLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/class-use/IDataAnalysisObject.html b/apidocs/2.1.1/org/eclipse/january/io/class-use/IDataAnalysisObject.html
new file mode 100644
index 0000000..b6e56fd
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/class-use/IDataAnalysisObject.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.io.IDataAnalysisObject (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.io.IDataAnalysisObject (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/IDataAnalysisObject.html" target="_top">Frames</a></li>
+<li><a href="IDataAnalysisObject.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.io.IDataAnalysisObject" class="title">Uses of Interface<br>org.eclipse.january.io.IDataAnalysisObject</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></strong></code>
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></strong></code>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that implement <a href="../../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></strong></code>
+<div class="block">Basic implementation of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/IDataAnalysisObject.html" target="_top">Frames</a></li>
+<li><a href="IDataAnalysisObject.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyAsyncSaver.html b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyAsyncSaver.html
new file mode 100644
index 0000000..2ca5d88
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyAsyncSaver.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.io.ILazyAsyncSaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.io.ILazyAsyncSaver (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazyAsyncSaver.html" target="_top">Frames</a></li>
+<li><a href="ILazyAsyncSaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.io.ILazyAsyncSaver" class="title">Uses of Interface<br>org.eclipse.january.io.ILazyAsyncSaver</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.io.ILazyAsyncSaver</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazyAsyncSaver.html" target="_top">Frames</a></li>
+<li><a href="ILazyAsyncSaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyDynamicLoader.html b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyDynamicLoader.html
new file mode 100644
index 0000000..cb66adc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyDynamicLoader.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.io.ILazyDynamicLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.io.ILazyDynamicLoader (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazyDynamicLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyDynamicLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.io.ILazyDynamicLoader" class="title">Uses of Interface<br>org.eclipse.january.io.ILazyDynamicLoader</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.io.ILazyDynamicLoader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazyDynamicLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyDynamicLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyLoader.html b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyLoader.html
new file mode 100644
index 0000000..4a48db4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazyLoader.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.io.ILazyLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.io.ILazyLoader (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazyLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.io.ILazyLoader" class="title">Uses of Interface<br>org.eclipse.january.io.ILazyLoader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> declared as <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#loader">loader</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset(java.lang.String,%20int,%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                      int&nbsp;dtype,
+                      int[]&nbsp;shape,
+                      <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#LazyDataset(java.lang.String,%20int,%20int,%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                      int&nbsp;dtype,
+                      int&nbsp;elements,
+                      int[]&nbsp;shape,
+                      <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDynamicDataset.html#LazyDynamicDataset(java.lang.String,%20int,%20int,%20int[],%20int[],%20org.eclipse.january.io.ILazyLoader)">LazyDynamicDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                    int&nbsp;dtype,
+                                    int&nbsp;elements,
+                                    int[]&nbsp;shape,
+                                    int[]&nbsp;maxShape,
+                                    <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a>&nbsp;loader)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></strong></code>
+<div class="block">Used by lazy writeable datasets to write slices to a file in an asynchronous manner</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></strong></code>
+<div class="block">Used by lazy writeable datasets to write slices to a file</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazyLoader.html" target="_top">Frames</a></li>
+<li><a href="ILazyLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazySaver.html b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazySaver.html
new file mode 100644
index 0000000..2bef524
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/class-use/ILazySaver.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.io.ILazySaver (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.io.ILazySaver (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazySaver.html" target="_top">Frames</a></li>
+<li><a href="ILazySaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.io.ILazySaver" class="title">Uses of Interface<br>org.eclipse.january.io.ILazySaver</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver</a></strong>(<a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Set saver (and also loader)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyWriteableDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyWriteableDataset.html#setSaver(org.eclipse.january.io.ILazySaver)">setSaver</a></strong>(<a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Set saver</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20java.lang.Class,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20java.lang.Class,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;clazz,
+                                        int&nbsp;elements,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        int&nbsp;dtype,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyWriteableDataset.html#LazyWriteableDataset(java.lang.String,%20int,%20int,%20int[],%20int[],%20int[],%20org.eclipse.january.io.ILazySaver)">LazyWriteableDataset</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                        int&nbsp;dtype,
+                                        int&nbsp;elements,
+                                        int[]&nbsp;shape,
+                                        int[]&nbsp;maxShape,
+                                        int[]&nbsp;chunks,
+                                        <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a>&nbsp;saver)</code>
+<div class="block">Create a lazy dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></strong></code>
+<div class="block">Used by lazy writeable datasets to write slices to a file in an asynchronous manner</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/ILazySaver.html" target="_top">Frames</a></li>
+<li><a href="ILazySaver.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/class-use/IMetaLoader.html b/apidocs/2.1.1/org/eclipse/january/io/class-use/IMetaLoader.html
new file mode 100644
index 0000000..697b9a6
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/class-use/IMetaLoader.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.io.IMetaLoader (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.io.IMetaLoader (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/IMetaLoader.html" target="_top">Frames</a></li>
+<li><a href="IMetaLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.io.IMetaLoader" class="title">Uses of Interface<br>org.eclipse.january.io.IMetaLoader</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.io.IMetaLoader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/io/class-use/IMetaLoader.html" target="_top">Frames</a></li>
+<li><a href="IMetaLoader.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/package-frame.html b/apidocs/2.1.1/org/eclipse/january/io/package-frame.html
new file mode 100644
index 0000000..f871c92
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/package-frame.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.io (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/eclipse/january/io/package-summary.html" target="classFrame">org.eclipse.january.io</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="IDataAnalysisObject.html" title="interface in org.eclipse.january.io" target="classFrame"><i>IDataAnalysisObject</i></a></li>
+<li><a href="ILazyAsyncSaver.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazyAsyncSaver</i></a></li>
+<li><a href="ILazyDynamicLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazyDynamicLoader</i></a></li>
+<li><a href="ILazyLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazyLoader</i></a></li>
+<li><a href="ILazySaver.html" title="interface in org.eclipse.january.io" target="classFrame"><i>ILazySaver</i></a></li>
+<li><a href="IMetaLoader.html" title="interface in org.eclipse.january.io" target="classFrame"><i>IMetaLoader</i></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/package-summary.html b/apidocs/2.1.1/org/eclipse/january/io/package-summary.html
new file mode 100644
index 0000000..ff824e7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/package-summary.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.io (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january.io (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../org/eclipse/january/metadata/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.january.io</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a></td>
+<td class="colLast">
+<div class="block">Used to mark data in the LoaderFactory so that the incorrect values are not stored in the cache.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io">ILazyAsyncSaver</a></td>
+<td class="colLast">
+<div class="block">Used by lazy writeable datasets to write slices to a file in an asynchronous manner</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io">ILazyDynamicLoader</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a></td>
+<td class="colLast">
+<div class="block">Used by lazy datasets to read slices from a file</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a></td>
+<td class="colLast">
+<div class="block">Used by lazy writeable datasets to write slices to a file</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io">IMetaLoader</a></td>
+<td class="colLast">
+<div class="block">Interface used to mark a loader as being available to load and return
+ metadata without loading the entire file into memory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/package-summary.html">Prev Package</a></li>
+<li><a href="../../../../org/eclipse/january/metadata/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/package-tree.html b/apidocs/2.1.1/org/eclipse/january/io/package-tree.html
new file mode 100644
index 0000000..5720aea
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/package-tree.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.io Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january.io Class Hierarchy (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/eclipse/january/metadata/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.eclipse.january.io</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Cloneable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><span class="strong">IDataAnalysisObject</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyDynamicLoader</span></a></li>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="strong">IMetaLoader</span></a></li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="strong">Serializable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyLoader</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazySaver</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyAsyncSaver</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/dataset/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/eclipse/january/metadata/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/io/package-use.html b/apidocs/2.1.1/org/eclipse/january/io/package-use.html
new file mode 100644
index 0000000..29a3680
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/io/package-use.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.eclipse.january.io (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.eclipse.january.io (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.eclipse.january.io" class="title">Uses of Package<br>org.eclipse.january.io</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> used by <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/io/class-use/ILazyLoader.html#org.eclipse.january.dataset">ILazyLoader</a>
+<div class="block">Used by lazy datasets to read slices from a file</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/io/class-use/ILazySaver.html#org.eclipse.january.dataset">ILazySaver</a>
+<div class="block">Used by lazy writeable datasets to write slices to a file</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> used by <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/io/class-use/ILazyLoader.html#org.eclipse.january.io">ILazyLoader</a>
+<div class="block">Used by lazy datasets to read slices from a file</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/io/class-use/ILazySaver.html#org.eclipse.january.io">ILazySaver</a>
+<div class="block">Used by lazy writeable datasets to write slices to a file</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> used by <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/io/class-use/IDataAnalysisObject.html#org.eclipse.january.metadata">IDataAnalysisObject</a>
+<div class="block">Used to mark data in the LoaderFactory so that the incorrect values are not stored in the cache.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/ARPESMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/ARPESMetadata.html
new file mode 100644
index 0000000..605668d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/ARPESMetadata.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ARPESMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ARPESMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ARPESMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/ARPESMetadata.html" target="_top">Frames</a></li>
+<li><a href="ARPESMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface ARPESMetadata" class="title">Interface ARPESMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.20">ARPESMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes ARPES-related information</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAnalyserAngles()">getAnalyserAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAngleAxisGlobalOffset()">getAngleAxisGlobalOffset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getAzimuthalAngles()">getAzimuthalAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getBindingEnergies()">getBindingEnergies</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisGlobalOffset()">getEnergyAxisGlobalOffset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getEnergyAxisOffset()">getEnergyAxisOffset</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getKineticEnergies()">getKineticEnergies</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPassEnergy()">getPassEnergy</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPhotoelectronMomentum()">getPhotoelectronMomentum</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPhotonEnergy()">getPhotonEnergy</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getPolarAngles()">getPolarAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getTemperature()">getTemperature</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getTiltAngles()">getTiltAngles</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#getWorkFunction()">getWorkFunction</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html#initialize()">initialize</a></strong>()</code>
+<div class="block">Initialize</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.25">initialize</a>()</pre>
+<div class="block">Initialize</div>
+</li>
+</ul>
+<a name="getPhotonEnergy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPhotonEnergy</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.28">getPhotonEnergy</a>()</pre>
+</li>
+</ul>
+<a name="getWorkFunction()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWorkFunction</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.29">getWorkFunction</a>()</pre>
+</li>
+</ul>
+<a name="getPassEnergy()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassEnergy</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.30">getPassEnergy</a>()</pre>
+</li>
+</ul>
+<a name="getTemperature()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTemperature</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.31">getTemperature</a>()</pre>
+</li>
+</ul>
+<a name="getKineticEnergies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKineticEnergies</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.34">getKineticEnergies</a>()</pre>
+</li>
+</ul>
+<a name="getAnalyserAngles()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAnalyserAngles</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.35">getAnalyserAngles</a>()</pre>
+</li>
+</ul>
+<a name="getPolarAngles()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPolarAngles</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.38">getPolarAngles</a>()</pre>
+</li>
+</ul>
+<a name="getTiltAngles()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTiltAngles</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.39">getTiltAngles</a>()</pre>
+</li>
+</ul>
+<a name="getAzimuthalAngles()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAzimuthalAngles</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.40">getAzimuthalAngles</a>()</pre>
+</li>
+</ul>
+<a name="getEnergyAxisGlobalOffset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnergyAxisGlobalOffset</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.43">getEnergyAxisGlobalOffset</a>()</pre>
+</li>
+</ul>
+<a name="getAngleAxisGlobalOffset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAngleAxisGlobalOffset</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.44">getAngleAxisGlobalOffset</a>()</pre>
+</li>
+</ul>
+<a name="getEnergyAxisOffset()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEnergyAxisOffset</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.45">getEnergyAxisOffset</a>()</pre>
+</li>
+</ul>
+<a name="getBindingEnergies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBindingEnergies</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.49">getBindingEnergies</a>()</pre>
+</li>
+</ul>
+<a name="getPhotoelectronMomentum()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPhotoelectronMomentum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ARPESMetadata.html#line.50">getPhotoelectronMomentum</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ARPESMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Class</li>
+<li><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/ARPESMetadata.html" target="_top">Frames</a></li>
+<li><a href="ARPESMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/AxesMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/AxesMetadata.html
new file mode 100644
index 0000000..095ee60
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/AxesMetadata.html
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AxesMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="AxesMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AxesMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/AxesMetadata.html" target="_top">Frames</a></li>
+<li><a href="AxesMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface AxesMetadata" class="title">Interface AxesMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.22">AxesMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes any axis information associated with a dataset.
+ Dimension numbers are zero-based, i.e. the first dimension is numbered
+ zero.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis(int,%20org.eclipse.january.dataset.ILazyDataset)">addAxis</a></strong>(int&nbsp;i,
+              <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazyDataset)</code>
+<div class="block">Add axis data to given dimension.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#addAxis(int,%20org.eclipse.january.dataset.ILazyDataset,%20int...)">addAxis</a></strong>(int&nbsp;primaryAxisDim,
+              <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;iLazyDataset,
+              int...&nbsp;dimMapping)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxes()">getAxes</a></strong>()</code>
+<div class="block">Get axis datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#getAxis(int)">getAxis</a></strong>(int&nbsp;axisDim)</code>
+<div class="block">Get all axis datasets for the given dimension</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#initialize(int)">initialize</a></strong>(int&nbsp;rank)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#refresh(int[])">refresh</a></strong>(int[]&nbsp;shape)</code>
+<div class="block">Refresh with given shape</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html#setAxis(int,%20org.eclipse.january.dataset.ILazyDataset...)">setAxis</a></strong>(int&nbsp;axisDim,
+              <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;axisData)</code>
+<div class="block">Set axis datasets for given dimension.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.28">initialize</a>(int&nbsp;rank)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>rank</code> - </dd></dl>
+</li>
+</ul>
+<a name="getAxes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAxes</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.35">getAxes</a>()</pre>
+<div class="block">Get axis datasets</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>all axis datasets, any nulls represent default integer indexes, 
+ each axis is the main specified axis. i.e the result of getAxis(n)[0]</dd></dl>
+</li>
+</ul>
+<a name="getAxis(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAxis</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.42">getAxis</a>(int&nbsp;axisDim)</pre>
+<div class="block">Get all axis datasets for the given dimension</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axisDim</code> - dimension (n.b. this is zero-based)</dd>
+<dt><span class="strong">Returns:</span></dt><dd>axis datasets, null represent default integer indexes, the order is in inverse importance.</dd></dl>
+</li>
+</ul>
+<a name="setAxis(int, org.eclipse.january.dataset.ILazyDataset...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAxis</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.50">setAxis</a>(int&nbsp;axisDim,
+           <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>...&nbsp;axisData)</pre>
+<div class="block">Set axis datasets for given dimension. These datasets must be one dimensional or match rank
+ with the associating dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axisDim</code> - </dd><dd><code>axisData</code> - </dd></dl>
+</li>
+</ul>
+<a name="addAxis(int, org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAxis</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.58">addAxis</a>(int&nbsp;i,
+           <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;lazyDataset)</pre>
+<div class="block">Add axis data to given dimension. This dataset must be one dimensional or match rank
+ with the associating dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>axisDim</code> - dimension (n.b. this is zero-based)</dd><dd><code>axisData</code> - dataset for axis</dd></dl>
+</li>
+</ul>
+<a name="addAxis(int, org.eclipse.january.dataset.ILazyDataset, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAxis</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.66">addAxis</a>(int&nbsp;primaryAxisDim,
+           <a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;iLazyDataset,
+           int...&nbsp;dimMapping)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>primaryAxisDim</code> - primary dimension (n.b. this is zero-based)</dd><dd><code>iLazyDataset</code> - </dd><dd><code>dimMapping</code> - indicates where each axis dimension maps to in the dataset dimensions</dd></dl>
+</li>
+</ul>
+<a name="refresh(int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>refresh</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/AxesMetadata.html#line.73">refresh</a>(int[]&nbsp;shape)</pre>
+<div class="block">Refresh with given shape</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>new shape</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AxesMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/AxesMetadata.html" target="_top">Frames</a></li>
+<li><a href="AxesMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/DimensionMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/DimensionMetadata.html
new file mode 100644
index 0000000..89e68ff
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/DimensionMetadata.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DimensionMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DimensionMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DimensionMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/DimensionMetadata.html" target="_top">Frames</a></li>
+<li><a href="DimensionMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface DimensionMetadata" class="title">Interface DimensionMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/DimensionMetadata.html#line.15">DimensionMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataChunkDimensions()">getDataChunkDimensions</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataDimensions()">getDataDimensions</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataMaxDimensions()">getDataMaxDimensions</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#initialize(int[],%20int[],%20int[])">initialize</a></strong>(int[]&nbsp;shape,
+                    int[]&nbsp;maxShape,
+                    int[]&nbsp;chunkShape)</code>
+<div class="block">Initialize dimension metadata</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(int[], int[], int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DimensionMetadata.html#line.23">initialize</a>(int[]&nbsp;shape,
+              int[]&nbsp;maxShape,
+              int[]&nbsp;chunkShape)</pre>
+<div class="block">Initialize dimension metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd><dd><code>maxShape</code> - </dd><dd><code>chunkShape</code> - </dd></dl>
+</li>
+</ul>
+<a name="getDataDimensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataDimensions</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DimensionMetadata.html#line.25">getDataDimensions</a>()</pre>
+</li>
+</ul>
+<a name="getDataMaxDimensions()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataMaxDimensions</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DimensionMetadata.html#line.27">getDataMaxDimensions</a>()</pre>
+</li>
+</ul>
+<a name="getDataChunkDimensions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDataChunkDimensions</h4>
+<pre>int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DimensionMetadata.html#line.29">getDataChunkDimensions</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DimensionMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/DimensionMetadata.html" target="_top">Frames</a></li>
+<li><a href="DimensionMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/Dirtiable.html b/apidocs/2.1.1/org/eclipse/january/metadata/Dirtiable.html
new file mode 100644
index 0000000..84cb882
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/Dirtiable.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Dirtiable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Dirtiable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Dirtiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Dirtiable.html" target="_top">Frames</a></li>
+<li><a href="Dirtiable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Annotation Type Dirtiable" class="title">Annotation Type Dirtiable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>)
+public @interface <a href="../../../../src-html/org/eclipse/january/metadata/Dirtiable.html#line.26">Dirtiable</a></pre>
+<div class="block">This is an annotation for any metadata field that should be set to a dirty state.</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Dirtiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Dirtiable.html" target="_top">Frames</a></li>
+<li><a href="Dirtiable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/DynamicConnectionInfo.html b/apidocs/2.1.1/org/eclipse/january/metadata/DynamicConnectionInfo.html
new file mode 100644
index 0000000..614f9c7
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/DynamicConnectionInfo.html
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DynamicConnectionInfo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DynamicConnectionInfo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicConnectionInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/DynamicConnectionInfo.html" target="_top">Frames</a></li>
+<li><a href="DynamicConnectionInfo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Class DynamicConnectionInfo" class="title">Class DynamicConnectionInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.metadata.DynamicConnectionInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.25">DynamicConnectionInfo</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata is set by a remote dataset.
+ 
+ It provides information about dropped data and
+ received data while the dataset is connected.
+ 
+ Not all remote datasets are forced to provide this information.
+ 
+ This class is set in bundle org.eclipse.dawnsci.remotedataset.client 
+ as metadata on RemoteDatasets returned from the Data Server</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.metadata.DynamicConnectionInfo">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#DynamicConnectionInfo()">DynamicConnectionInfo</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#clone()">clone</a></strong>()</code>
+<div class="block">Make a deep copy of metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#equals(java.lang.Object)">equals</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#getDroppedCount()">getDroppedCount</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#getReceivedCount()">getReceivedCount</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#isConnected()">isConnected</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#setConnected(boolean)">setConnected</a></strong>(boolean&nbsp;connected)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#setDroppedCount(int)">setDroppedCount</a></strong>(int&nbsp;droppedCount)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#setReceivedCount(int)">setReceivedCount</a></strong>(int&nbsp;receivedCount)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DynamicConnectionInfo()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DynamicConnectionInfo</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.25">DynamicConnectionInfo</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="isConnected()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isConnected</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.37">isConnected</a>()</pre>
+</li>
+</ul>
+<a name="setConnected(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnected</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.41">setConnected</a>(boolean&nbsp;connected)</pre>
+</li>
+</ul>
+<a name="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.46">hashCode</a>()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.56">equals</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getReceivedCount()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReceivedCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.73">getReceivedCount</a>()</pre>
+</li>
+</ul>
+<a name="setReceivedCount(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setReceivedCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.77">setReceivedCount</a>(int&nbsp;receivedCount)</pre>
+</li>
+</ul>
+<a name="getDroppedCount()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDroppedCount</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.81">getDroppedCount</a>()</pre>
+</li>
+</ul>
+<a name="setDroppedCount(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDroppedCount</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.85">setDroppedCount</a>(int&nbsp;droppedCount)</pre>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html#line.94">clone</a>()</pre>
+<div class="block">Make a deep copy of metadata</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>clone</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicConnectionInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/DynamicConnectionInfo.html" target="_top">Frames</a></li>
+<li><a href="DynamicConnectionInfo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/DynamicMetadataUtils.html b/apidocs/2.1.1/org/eclipse/january/metadata/DynamicMetadataUtils.html
new file mode 100644
index 0000000..74d9e7a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/DynamicMetadataUtils.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DynamicMetadataUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="DynamicMetadataUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicMetadataUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/DynamicMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="DynamicMetadataUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Class DynamicMetadataUtils" class="title">Class DynamicMetadataUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.metadata.DynamicMetadataUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html#line.14">DynamicMetadataUtils</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html#DynamicMetadataUtils()">DynamicMetadataUtils</a></strong>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html#refreshDynamicAxesMetadata(java.util.List,%20int[])">refreshDynamicAxesMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a>&gt;&nbsp;axm,
+                                                    int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DynamicMetadataUtils()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DynamicMetadataUtils</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html#line.14">DynamicMetadataUtils</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="refreshDynamicAxesMetadata(java.util.List, int[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>refreshDynamicAxesMetadata</h4>
+<pre>public static&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html#line.16">refreshDynamicAxesMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a>&gt;&nbsp;axm,
+                               int[]&nbsp;shape)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicMetadataUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/DynamicMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="DynamicMetadataUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/ErrorMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/ErrorMetadata.html
new file mode 100644
index 0000000..9a4dc3a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/ErrorMetadata.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ErrorMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="ErrorMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ErrorMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/ErrorMetadata.html" target="_top">Frames</a></li>
+<li><a href="ErrorMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface ErrorMetadata" class="title">Interface ErrorMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/ErrorMetadata.html#line.20">ErrorMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes any error associated with a dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#getError()">getError</a></strong>()</code>
+<div class="block">Get error dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#initialize()">initialize</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html#setError(org.eclipse.january.dataset.ILazyDataset)">setError</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;error)</code>
+<div class="block">Set the error</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ErrorMetadata.html#line.22">initialize</a>()</pre>
+</li>
+</ul>
+<a name="getError()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getError</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ErrorMetadata.html#line.28">getError</a>()</pre>
+<div class="block">Get error dataset</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>error dataset</dd></dl>
+</li>
+</ul>
+<a name="setError(org.eclipse.january.dataset.ILazyDataset)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setError</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/ErrorMetadata.html#line.34">setError</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;error)</pre>
+<div class="block">Set the error</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>error</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ErrorMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/ErrorMetadata.html" target="_top">Frames</a></li>
+<li><a href="ErrorMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/IExtendedMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/IExtendedMetadata.html
new file mode 100644
index 0000000..86e6353
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/IExtendedMetadata.html
@@ -0,0 +1,361 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IExtendedMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IExtendedMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IExtendedMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/IExtendedMetadata.html" target="_top">Frames</a></li>
+<li><a href="IExtendedMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface IExtendedMetadata" class="title">Interface IExtendedMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.25">IExtendedMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></pre>
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.
+ <p>
+ It is intended that implementations of this interface will be through an adapter</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.metadata.IMetadata">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#serialVersionUID">serialVersionUID</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getCreation()">getCreation</a></strong>()</code>
+<div class="block">This should be the timestamp of when the experiment or measurement took place which should
+ be recorded in the header of the file, if applicable</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getCreator()">getCreator</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFileName()">getFileName</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFileOwner()">getFileOwner</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFileSize()">getFileSize</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getFullPath()">getFullPath</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getLastModified()">getLastModified</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#getScanCommand()">getScanCommand</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html#initialize(java.io.File)">initialize</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;f)</code>
+<div class="block">Initialize with a file</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.IMetadata">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo(java.lang.String,%20int...)">addDataInfo</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#addNames(java.util.Collection)">addNames</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#clone()">clone</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataNames()">getDataNames</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataShapes()">getDataShapes</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataSizes()">getDataSizes</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getFilePath()">getFilePath</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames()">getMetaNames</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue(java.lang.String)">getMetaValue</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#getUserObjects()">getUserObjects</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize(java.util.Map)">initialize</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#setFilePath(java.lang.String)">setFilePath</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html#setMetadata(java.util.Map)">setMetadata</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(java.io.File)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.31">initialize</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;f)</pre>
+<div class="block">Initialize with a file</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>f</code> - file</dd></dl>
+</li>
+</ul>
+<a name="getCreation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCreation</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.39">getCreation</a>()</pre>
+<div class="block">This should be the timestamp of when the experiment or measurement took place which should
+ be recorded in the header of the file, if applicable</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a date object to represent when the data was created</dd></dl>
+</li>
+</ul>
+<a name="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.44">getLastModified</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a date object that indicated when the data was last modified</dd></dl>
+</li>
+</ul>
+<a name="getCreator()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCreator</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.49">getCreator</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a string representing the user who created the file</dd></dl>
+</li>
+</ul>
+<a name="getFileName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFileName</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.54">getFileName</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a string containing the filename</dd></dl>
+</li>
+</ul>
+<a name="getFileOwner()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFileOwner</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.59">getFileOwner</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the owner of the file</dd></dl>
+</li>
+</ul>
+<a name="getFileSize()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFileSize</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.64">getFileSize</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>a long representing the size of the file in bytes</dd></dl>
+</li>
+</ul>
+<a name="getFullPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFullPath</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.69">getFullPath</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the full path string of the file</dd></dl>
+</li>
+</ul>
+<a name="getScanCommand()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getScanCommand</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IExtendedMetadata.html#line.75">getScanCommand</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>The scan command as a string that was used to generate the data. This can be null as not always
+         applicable</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IExtendedMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/IExtendedMetadata.html" target="_top">Frames</a></li>
+<li><a href="IExtendedMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/IMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/IMetadata.html
new file mode 100644
index 0000000..71f8fa0
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/IMetadata.html
@@ -0,0 +1,485 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="IMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/IMetadata.html" target="_top">Frames</a></li>
+<li><a href="IMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface IMetadata" class="title">Interface IMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.30">IMetadata</a>
+extends <a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder. It is intended that
+ this interface will be implemented in an object that will then be 
+ associated with a DataHolder or dataset using setMetadata(IMetadata).
+ <p>
+ All returned collections and maps are <b>unmodifiable</b>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#serialVersionUID">serialVersionUID</a></strong></code>
+<div class="block">Update this when there are any serious changes to API</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo(java.lang.String,%20int...)">addDataInfo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;n,
+                      int...&nbsp;shape)</code>
+<div class="block">Add name and shape of a dataset to metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addNames(java.util.Collection)">addNames</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;names)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#clone()">clone</a></strong>()</code>
+<div class="block">Copy of metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataNames()">getDataNames</a></strong>()</code>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,int[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataShapes()">getDataShapes</a></strong>()</code>
+<div class="block">Can be implemented to return shapes of dataset
+ (shape can be null if it is not known)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataSizes()">getDataSizes</a></strong>()</code>
+<div class="block">Can be implemented to return sizes of datasets
+ (size can be null if it is not known)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getFilePath()">getFilePath</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames()">getMetaNames</a></strong>()</code>
+<div class="block">Returns a collection of metadata names</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue(java.lang.String)">getMetaValue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Returns string value or null if not implemented</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getUserObjects()">getUserObjects</a></strong>()</code>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize(java.util.Map)">initialize</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</code>
+<div class="block">Initialize metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#setFilePath(java.lang.String)">setFilePath</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/IMetadata.html#setMetadata(java.util.Map)">setMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;map)</code>
+<div class="block">Set metadata map</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field_detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="serialVersionUID">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialVersionUID</h4>
+<pre>static final&nbsp;long <a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.34">serialVersionUID</a></pre>
+<div class="block">Update this when there are any serious changes to API</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.eclipse.january.metadata.IMetadata.serialVersionUID">Constant Field Values</a></dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.40">initialize</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</pre>
+<div class="block">Initialize metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - </dd></dl>
+</li>
+</ul>
+<a name="getFilePath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilePath</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.46">getFilePath</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the path to the original file, or null if there was not a file.</dd></dl>
+</li>
+</ul>
+<a name="getDataNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataNames</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.53">getDataNames</a>()</pre>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>collection</dd></dl>
+</li>
+</ul>
+<a name="getDataSizes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataSizes</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.60">getDataSizes</a>()</pre>
+<div class="block">Can be implemented to return sizes of datasets
+ (size can be null if it is not known)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>map of sizes</dd></dl>
+</li>
+</ul>
+<a name="getDataShapes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataShapes</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.67">getDataShapes</a>()</pre>
+<div class="block">Can be implemented to return shapes of dataset
+ (shape can be null if it is not known)</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>map of shapes</dd></dl>
+</li>
+</ul>
+<a name="getMetaValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaValue</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.76">getMetaValue</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)
+                          throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<div class="block">Returns string value or null if not implemented</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getMetaNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaNames</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.83">getMetaNames</a>()
+                                throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<div class="block">Returns a collection of metadata names</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>collection</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getUserObjects()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserObjects</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.90">getUserObjects</a>()</pre>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>collection</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.97">clone</a>()</pre>
+<div class="block">Copy of metadata</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>deep copy</dd></dl>
+</li>
+</ul>
+<a name="setFilePath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFilePath</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.99">setFilePath</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filename)</pre>
+</li>
+</ul>
+<a name="addDataInfo(java.lang.String, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDataInfo</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.110">addDataInfo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;n,
+               int...&nbsp;shape)</pre>
+<div class="block">Add name and shape of a dataset to metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - </dd><dd><code>shape</code> - (can be null or zero-length)
+ 
+ (NOTE method should be public, people can define loaders outside this
+ package like the DESY FIO loader for instance.)</dd></dl>
+</li>
+</ul>
+<a name="addNames(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNames</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.112">addNames</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;names)</pre>
+</li>
+</ul>
+<a name="setMetadata(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setMetadata</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/IMetadata.html#line.118">setMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;map)</pre>
+<div class="block">Set metadata map</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/IMetadata.html" target="_top">Frames</a></li>
+<li><a href="IMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/MaskMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/MaskMetadata.html
new file mode 100644
index 0000000..11f8041
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/MaskMetadata.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MaskMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MaskMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MaskMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/MaskMetadata.html" target="_top">Frames</a></li>
+<li><a href="MaskMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface MaskMetadata" class="title">Interface MaskMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/MaskMetadata.html#line.20">MaskMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes masking information associated with a dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html#getMask()">getMask</a></strong>()</code>
+<div class="block">Get mask</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html#initialize(org.eclipse.january.dataset.IDataset)">initialize</a></strong>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;mask)</code>
+<div class="block">Initialize mask</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(org.eclipse.january.dataset.IDataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/MaskMetadata.html#line.26">initialize</a>(<a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;mask)</pre>
+<div class="block">Initialize mask</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>mask</code> - </dd></dl>
+</li>
+</ul>
+<a name="getMask()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMask</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset">IDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/MaskMetadata.html#line.32">getMask</a>()</pre>
+<div class="block">Get mask</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>mask</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MaskMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/MaskMetadata.html" target="_top">Frames</a></li>
+<li><a href="MaskMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/Metadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/Metadata.html
new file mode 100644
index 0000000..bdb5494
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/Metadata.html
@@ -0,0 +1,579 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Metadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Metadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Metadata.html" target="_top">Frames</a></li>
+<li><a href="Metadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Class Metadata" class="title">Class Metadata</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.metadata.Metadata</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.34">Metadata</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></pre>
+<div class="block">Basic implementation of metadata</div>
+<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../serialized-form.html#org.eclipse.january.metadata.Metadata">Serialized Form</a></dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#Metadata()">Metadata</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#Metadata(java.util.Map)">Metadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#addDataInfo(java.lang.String,%20int...)">addDataInfo</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                      int...&nbsp;shape)</code>
+<div class="block">Add name and shape of a dataset to metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#addNames(java.util.Collection)">addNames</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;names)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#clone()">clone</a></strong>()</code>
+<div class="block">Copy of metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getDataNames()">getDataNames</a></strong>()</code>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,int[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getDataShapes()">getDataShapes</a></strong>()</code>
+<div class="block">Can be implemented to return shapes of dataset
+ (shape can be null if it is not known)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getDataSizes()">getDataSizes</a></strong>()</code>
+<div class="block">Can be implemented to return sizes of datasets
+ (size can be null if it is not known)</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getFilePath()">getFilePath</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getInternalMetadata()">getInternalMetadata</a></strong>()</code>
+<div class="block">Internal use only</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaNames()">getMetaNames</a></strong>()</code>
+<div class="block">Returns a collection of metadata names</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getMetaValue(java.lang.String)">getMetaValue</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Returns string value or null if not implemented</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#getUserObjects()">getUserObjects</a></strong>()</code>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#initialize(java.util.Map)">initialize</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</code>
+<div class="block">Initialize metadata</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#setFilePath(java.lang.String)">setFilePath</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#setMetadata(java.util.Map)">setMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</code>
+<div class="block">Set metadata map</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Metadata.html#setUserObjects(java.util.Collection)">setUserObjects</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;objects)</code>
+<div class="block">Set user objects</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Metadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Metadata</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.46">Metadata</a>()</pre>
+</li>
+</ul>
+<a name="Metadata(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Metadata</h4>
+<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.49">Metadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.54">initialize</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize(java.util.Map)">IMetadata</a></code></strong></div>
+<div class="block">Initialize metadata</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#initialize(java.util.Map)">initialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="addNames(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNames</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.59">addNames</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;names)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addNames(java.util.Collection)">addNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setMetadata(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMetadata</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.72">setMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;metadata)</pre>
+<div class="block">Set metadata map</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#setMetadata(java.util.Map)">setMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Parameters:</span></dt><dd><code>metadata</code> - </dd></dl>
+</li>
+</ul>
+<a name="getInternalMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInternalMetadata</h4>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,? extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.80">getInternalMetadata</a>()</pre>
+<div class="block">Internal use only</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>metadata map</dd></dl>
+</li>
+</ul>
+<a name="setUserObjects(java.util.Collection)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUserObjects</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.88">setUserObjects</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;objects)</pre>
+<div class="block">Set user objects</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>objects</code> - </dd></dl>
+</li>
+</ul>
+<a name="addDataInfo(java.lang.String, int...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addDataInfo</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.92">addDataInfo</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+               int...&nbsp;shape)</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo(java.lang.String,%20int...)">IMetadata</a></code></strong></div>
+<div class="block">Add name and shape of a dataset to metadata</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#addDataInfo(java.lang.String,%20int...)">addDataInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dd><code>shape</code> - (can be null or zero-length)
+ 
+ (NOTE method should be public, people can define loaders outside this
+ package like the DESY FIO loader for instance.)</dd></dl>
+</li>
+</ul>
+<a name="getDataNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataNames</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.97">getDataNames</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataNames()">IMetadata</a></code></strong></div>
+<div class="block">Returns a collection of dataset names or null if not implemented</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataNames()">getDataNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>collection</dd></dl>
+</li>
+</ul>
+<a name="getDataShapes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataShapes</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.102">getDataShapes</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataShapes()">IMetadata</a></code></strong></div>
+<div class="block">Can be implemented to return shapes of dataset
+ (shape can be null if it is not known)</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataShapes()">getDataShapes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>map of shapes</dd></dl>
+</li>
+</ul>
+<a name="getDataSizes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataSizes</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.107">getDataSizes</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataSizes()">IMetadata</a></code></strong></div>
+<div class="block">Can be implemented to return sizes of datasets
+ (size can be null if it is not known)</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getDataSizes()">getDataSizes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>map of sizes</dd></dl>
+</li>
+</ul>
+<a name="getMetaValue(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaValue</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.123">getMetaValue</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)
+                          throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue(java.lang.String)">IMetadata</a></code></strong></div>
+<div class="block">Returns string value or null if not implemented</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaValue(java.lang.String)">getMetaValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>value</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getMetaNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetaNames</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.129">getMetaNames</a>()
+                                throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames()">IMetadata</a></code></strong></div>
+<div class="block">Returns a collection of metadata names</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getMetaNames()">getMetaNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>collection</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code></dd></dl>
+</li>
+</ul>
+<a name="getUserObjects()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserObjects</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.134">getUserObjects</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getUserObjects()">IMetadata</a></code></strong></div>
+<div class="block">May be implemented to provide custom metadata in the form of a collection of serializable objects</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getUserObjects()">getUserObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>collection</dd></dl>
+</li>
+</ul>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre>public&nbsp;<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.139">clone</a>()</pre>
+<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#clone()">IMetadata</a></code></strong></div>
+<div class="block">Copy of metadata</div>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></dd>
+<dt><strong>Overrides:</strong></dt>
+<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>deep copy</dd></dl>
+</li>
+</ul>
+<a name="getFilePath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilePath</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.182">getFilePath</a>()</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#getFilePath()">getFilePath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+<dt><span class="strong">Returns:</span></dt><dd>the path to the original file, or null if there was not a file.</dd></dl>
+</li>
+</ul>
+<a name="setFilePath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setFilePath</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Metadata.html#line.187">setFilePath</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath)</pre>
+<dl>
+<dt><strong>Specified by:</strong></dt>
+<dd><code><a href="../../../../org/eclipse/january/metadata/IMetadata.html#setFilePath(java.lang.String)">setFilePath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Metadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Metadata.html" target="_top">Frames</a></li>
+<li><a href="Metadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/MetadataFactory.html b/apidocs/2.1.1/org/eclipse/january/metadata/MetadataFactory.html
new file mode 100644
index 0000000..5bb3959
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/MetadataFactory.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MetadataFactory (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/MetadataFactory.html" target="_top">Frames</a></li>
+<li><a href="MetadataFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Class MetadataFactory" class="title">Class MetadataFactory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.eclipse.january.metadata.MetadataFactory</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/eclipse/january/metadata/MetadataFactory.html#line.28">MetadataFactory</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html#createMetadata(java.lang.Class,%20java.lang.Object...)">createMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)</code>
+<div class="block">Create a metadata object of given class with given arguments</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<br>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html#registerClass(java.lang.Class)">registerClass</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Register metadata class</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createMetadata(java.lang.Class, java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createMetadata</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;T&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/MetadataFactory.html#line.57">createMetadata</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                                        <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)
+                                             throws <a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></pre>
+<div class="block">Create a metadata object of given class with given arguments</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd><dd><code>arguments</code> - these must match the arguments given in the initialize method specified in the class</dd>
+<dt><span class="strong">Returns:</span></dt><dd>metadata object or null if type not available</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></code> - if the class cannot be instantiated, the initialize method does not exist, or
+  the initialize method could not be called successfully</dd></dl>
+</li>
+</ul>
+<a name="registerClass(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>registerClass</h4>
+<pre>public static&nbsp;&lt;T extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/MetadataFactory.html#line.88">registerClass</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block">Register metadata class</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>clazz</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataFactory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/MetadataFactory.html" target="_top">Frames</a></li>
+<li><a href="MetadataFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/MetadataType.html b/apidocs/2.1.1/org/eclipse/january/metadata/MetadataType.html
new file mode 100644
index 0000000..6d6922e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/MetadataType.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetadataType (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="MetadataType (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/MetadataType.html" target="_top">Frames</a></li>
+<li><a href="MetadataType.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface MetadataType" class="title">Interface MetadataType</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a>, <a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a>, <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a>, <a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a>, <a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a>, <a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>, <a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a>, <a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a>, <a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a>, <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;T&gt;, <a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a>, <a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/MetadataType.html#line.30">MetadataType</a>
+extends <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre>
+<div class="block">This is a marker interface for all metadata items which can be associated
+ with a dataset.
+ <p>
+ All sub-interfaces must have an initialize method and all implementations
+ must have a null constructor.
+ <p>
+ Extending sub-interfaces of MetadataType is strongly discouraged. That is,
+ metadata interfaces (sub-interfaces of MetadataType) should be considered
+ to be "final". This simplifies the implementation of <a href="../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)"><code>IMetadataProvider.getMetadata(Class)</code></a>, etc.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></strong>()</code>
+<div class="block">Make a deep copy of metadata</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="clone()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>clone</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/MetadataType.html#line.36">clone</a>()</pre>
+<div class="block">Make a deep copy of metadata</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>clone</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetadataType.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/MetadataType.html" target="_top">Frames</a></li>
+<li><a href="MetadataType.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/OriginMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/OriginMetadata.html
new file mode 100644
index 0000000..fe7fbd8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/OriginMetadata.html
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>OriginMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="OriginMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OriginMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/OriginMetadata.html" target="_top">Frames</a></li>
+<li><a href="OriginMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface OriginMetadata" class="title">Interface OriginMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.21">OriginMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></pre>
+<div class="block">Defines the origin of a dataset which is a slice of a parent dataset</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getDatasetName()">getDatasetName</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getFilePath()">getFilePath</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getParent()">getParent</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceFromInput()">getSliceFromInput</a></strong>()</code>
+<div class="block">The starting slice</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#getSliceInOutput()">getSliceInOutput</a></strong>()</code>
+<div class="block">Current slice information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html#initialize(org.eclipse.january.dataset.ILazyDataset,%20org.eclipse.january.dataset.Slice[],%20int[],%20java.lang.String,%20java.lang.String)">initialize</a></strong>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;parent,
+                    <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;outSlice,
+                    int[]&nbsp;dataDims,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath,
+                    <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetName)</code>
+<div class="block">Initialize origin of dataset</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.DimensionMetadata">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataChunkDimensions()">getDataChunkDimensions</a>, <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataDimensions()">getDataDimensions</a>, <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#getDataMaxDimensions()">getDataMaxDimensions</a>, <a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html#initialize(int[],%20int[],%20int[])">initialize</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(org.eclipse.january.dataset.ILazyDataset, org.eclipse.january.dataset.Slice[], int[], java.lang.String, java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.31">initialize</a>(<a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;parent,
+              <a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;outSlice,
+              int[]&nbsp;dataDims,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filePath,
+              <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;datasetName)</pre>
+<div class="block">Initialize origin of dataset</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>parent</code> - </dd><dd><code>outSlice</code> - </dd><dd><code>dataDims</code> - </dd><dd><code>filePath</code> - </dd><dd><code>datasetName</code> - </dd></dl>
+</li>
+</ul>
+<a name="getParent()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParent</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.37">getParent</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>ILazyDataset</dd></dl>
+</li>
+</ul>
+<a name="getSliceFromInput()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSliceFromInput</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.43">getSliceFromInput</a>()</pre>
+<div class="block">The starting slice</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the initial slice</dd></dl>
+</li>
+</ul>
+<a name="getDatasetName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDatasetName</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.49">getDatasetName</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>name of dataset</dd></dl>
+</li>
+</ul>
+<a name="getFilePath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFilePath</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.55">getFilePath</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>file path</dd></dl>
+</li>
+</ul>
+<a name="getSliceInOutput()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSliceInOutput</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">Slice</a>[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/OriginMetadata.html#line.61">getSliceInOutput</a>()</pre>
+<div class="block">Current slice information.</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>the current slice.</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OriginMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/OriginMetadata.html" target="_top">Frames</a></li>
+<li><a href="OriginMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/PeemMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/PeemMetadata.html
new file mode 100644
index 0000000..0a03eeb
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/PeemMetadata.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PeemMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="PeemMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PeemMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/PeemMetadata.html" target="_top">Frames</a></li>
+<li><a href="PeemMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface PeemMetadata" class="title">Interface PeemMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.20">PeemMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes Peem-related information</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#getFieldOfView()">getFieldOfView</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#getScaling()">getScaling</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>double[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#getXYMotorPosition()">getXYMotorPosition</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#initialize(double[],%20double,%20double)">initialize</a></strong>(double[]&nbsp;xyPosition,
+                    double&nbsp;scaling,
+                    double&nbsp;fieldOfView)</code>
+<div class="block">Initialize PEEM metadata</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#setFieldOfView(double)">setFieldOfView</a></strong>(double&nbsp;fieldOfView)</code>
+<div class="block">Sets fieldOfView value in microns</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#setScaling(double)">setScaling</a></strong>(double&nbsp;scaling)</code>
+<div class="block">Sets scaling micron/pixel</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html#setXYMotorPosition(double[])">setXYMotorPosition</a></strong>(double[]&nbsp;xyMotorPosition)</code>
+<div class="block">Sets X/y motor position in microns</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(double[], double, double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.28">initialize</a>(double[]&nbsp;xyPosition,
+              double&nbsp;scaling,
+              double&nbsp;fieldOfView)</pre>
+<div class="block">Initialize PEEM metadata</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>xyPosition</code> - </dd><dd><code>scaling</code> - </dd><dd><code>fieldOfView</code> - </dd></dl>
+</li>
+</ul>
+<a name="getXYMotorPosition()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getXYMotorPosition</h4>
+<pre>double[]&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.34">getXYMotorPosition</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>X/y motor position in microns</dd></dl>
+</li>
+</ul>
+<a name="getScaling()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getScaling</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.40">getScaling</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>scaling value micron/pixel</dd></dl>
+</li>
+</ul>
+<a name="getFieldOfView()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFieldOfView</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.46">getFieldOfView</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>field of view value in microns</dd></dl>
+</li>
+</ul>
+<a name="setXYMotorPosition(double[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setXYMotorPosition</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.58">setXYMotorPosition</a>(double[]&nbsp;xyMotorPosition)</pre>
+<div class="block">Sets X/y motor position in microns</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>xyMotorPosition</code> - </dd></dl>
+</li>
+</ul>
+<a name="setScaling(double)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setScaling</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.64">setScaling</a>(double&nbsp;scaling)</pre>
+<div class="block">Sets scaling micron/pixel</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scaling</code> - </dd></dl>
+</li>
+</ul>
+<a name="setFieldOfView(double)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setFieldOfView</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/PeemMetadata.html#line.70">setFieldOfView</a>(double&nbsp;fieldOfView)</pre>
+<div class="block">Sets fieldOfView value in microns</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>fieldOfView</code> - </dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PeemMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/PeemMetadata.html" target="_top">Frames</a></li>
+<li><a href="PeemMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/Reshapeable.html b/apidocs/2.1.1/org/eclipse/january/metadata/Reshapeable.html
new file mode 100644
index 0000000..89f12ea
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/Reshapeable.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Reshapeable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Reshapeable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Reshapeable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Reshapeable.html" target="_top">Frames</a></li>
+<li><a href="Reshapeable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation_type_optional_element_summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#annotation_type_element_detail">Element</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Annotation Type Reshapeable" class="title">Annotation Type Reshapeable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>)
+public @interface <a href="../../../../src-html/org/eclipse/january/metadata/Reshapeable.html#line.26">Reshapeable</a></pre>
+<div class="block">This is an annotation for any metadata field that should be reshaped or squeezed. These include
+ lazy datasets, arrays and lists of lazy datasets, and maps where the values are lazy datasets.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation_type_optional_element_summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Optional Element and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/Reshapeable.html#matchRank()">matchRank</a></strong></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation_type_element_detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a name="matchRank()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>matchRank</h4>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/Reshapeable.html#line.30">matchRank</a></pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if size of top-level array or list should match rank of dataset</dd></dl>
+<dl>
+<dt>Default:</dt>
+<dd>false</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Reshapeable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Reshapeable.html" target="_top">Frames</a></li>
+<li><a href="Reshapeable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation_type_optional_element_summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#annotation_type_element_detail">Element</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/Sliceable.html b/apidocs/2.1.1/org/eclipse/january/metadata/Sliceable.html
new file mode 100644
index 0000000..28214a1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/Sliceable.html
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Sliceable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Sliceable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Sliceable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Sliceable.html" target="_top">Frames</a></li>
+<li><a href="Sliceable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Annotation Type Sliceable" class="title">Annotation Type Sliceable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>)
+public @interface <a href="../../../../src-html/org/eclipse/january/metadata/Sliceable.html#line.26">Sliceable</a></pre>
+<div class="block">This is an annotation for any metadata field that should be sliced. These include lazy datasets,
+ arrays and lists of lazy datasets, and maps where the values are lazy datasets.</div>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Sliceable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Sliceable.html" target="_top">Frames</a></li>
+<li><a href="Sliceable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/StatisticsMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/StatisticsMetadata.html
new file mode 100644
index 0000000..0655f59
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/StatisticsMetadata.html
@@ -0,0 +1,627 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StatisticsMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="StatisticsMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StatisticsMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/StatisticsMetadata.html" target="_top">Frames</a></li>
+<li><a href="StatisticsMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface StatisticsMetadata" class="title">Interface StatisticsMetadata&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - is either a Number or a double array</dd></dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.24">StatisticsMetadata</a>&lt;T&gt;
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">Store standard statistics</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.0</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMaximum(int,%20boolean...)">getArgMaximum</a></strong>(int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getArgMinimum(int,%20boolean...)">getArgMinimum</a></strong>(int&nbsp;axis,
+                          boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount(boolean...)">getCount</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getCount(int,%20boolean...)">getCount</a></strong>(int&nbsp;axis,
+                boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getHash(int[])">getHash</a></strong>(int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)">getMaximum</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(int,%20boolean...)">getMaximum</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximumPositions(boolean...)">getMaximumPositions</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean(boolean...)">getMean</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMean(int,%20boolean...)">getMean</a></strong>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum(boolean...)">getMinimum</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimum(int,%20boolean...)">getMinimum</a></strong>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMinimumPositions(boolean...)">getMinimumPositions</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum(boolean...)">getSum</a></strong>(boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getSum(int,%20boolean...)">getSum</a></strong>(int&nbsp;axis,
+            boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance(boolean,%20boolean...)">getVariance</a></strong>(boolean&nbsp;isWholePopulation,
+                      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getVariance(int,%20boolean,%20boolean...)">getVariance</a></strong>(int&nbsp;axis,
+                      boolean&nbsp;isWholePopulation,
+                      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#initialize(org.eclipse.january.dataset.Dataset)">initialize</a></strong>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#isDirty()">isDirty</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setDirty()">setDirty</a></strong>()</code>
+<div class="block">Call to indicate dataset has been modified so statistics are not up-to-date</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setHash(int)">setHash</a></strong>(int&nbsp;hash)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimum(T,%20T,%20boolean...)">setMaximumMinimum</a></strong>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                                  <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                                  boolean...&nbsp;ignoreInvalids)</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumMinimumSum(T,%20T,%20T,%20boolean...)">setMaximumMinimumSum</a></strong>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                                        <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                                        <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;sum,
+                                        boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMaximumPositions(java.util.List,%20boolean...)">setMaximumPositions</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;maximumPositions,
+                                      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#setMinimumPositions(java.util.List,%20boolean...)">setMinimumPositions</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;minimumPositions,
+                                      boolean...&nbsp;ignoreInvalids)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="initialize(org.eclipse.january.dataset.Dataset)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>initialize</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.30">initialize</a>(<a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;dataset)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataset</code> - </dd></dl>
+</li>
+</ul>
+<a name="setDirty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setDirty</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.35">setDirty</a>()</pre>
+<div class="block">Call to indicate dataset has been modified so statistics are not up-to-date</div>
+</li>
+</ul>
+<a name="isDirty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDirty</h4>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.40">isDirty</a>()</pre>
+<dl><dt><span class="strong">Returns:</span></dt><dd>true if dataset has been modified</dd></dl>
+</li>
+</ul>
+<a name="setHash(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setHash</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.45">setHash</a>(int&nbsp;hash)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>hash</code> - the hash to set</dd></dl>
+</li>
+</ul>
+<a name="getHash(int[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHash</h4>
+<pre>int&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.51">getHash</a>(int[]&nbsp;shape)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - </dd>
+<dt><span class="strong">Returns:</span></dt><dd>the hash</dd></dl>
+</li>
+</ul>
+<a name="getMaximum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaximum</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.59">getMaximum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - Can be null, one boolean, or two booleans. By default, both are false. If
+ the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to
+ ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the maximum</dd></dl>
+</li>
+</ul>
+<a name="setMaximumMinimum(java.lang.Object,java.lang.Object,boolean[])">
+<!--   -->
+</a><a name="setMaximumMinimum(T, T, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaximumMinimum</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.67">setMaximumMinimum</a>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                                <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                                boolean...&nbsp;ignoreInvalids)</pre>
+<div class="block"><span class="strong">Deprecated.</span>&nbsp;</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maximum</code> - the maximum to set</dd><dd><code>minimum</code> - the minimum to set</dd><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd></dl>
+</li>
+</ul>
+<a name="setMaximumMinimumSum(java.lang.Object,java.lang.Object,java.lang.Object,boolean[])">
+<!--   -->
+</a><a name="setMaximumMinimumSum(T, T, T, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaximumMinimumSum</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.76">setMaximumMinimumSum</a>(<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;maximum,
+                        <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;minimum,
+                        <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;sum,
+                        boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maximum</code> - the maximum to set</dd><dd><code>minimum</code> - the minimum to set</dd><dd><code>sum</code> - the sum to set</dd><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+<a name="setMaximumPositions(java.util.List, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaximumPositions</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.82">setMaximumPositions</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;maximumPositions,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maximumPositions</code> - the maximum positions to set</dd><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd></dl>
+</li>
+</ul>
+<a name="setMinimumPositions(java.util.List, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMinimumPositions</h4>
+<pre>void&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.88">setMinimumPositions</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;minimumPositions,
+                       boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>minimumPositions</code> - the minimum positions to set</dd><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd></dl>
+</li>
+</ul>
+<a name="getMaximumPositions(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaximumPositions</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.94">getMaximumPositions</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the maximum positions</dd></dl>
+</li>
+</ul>
+<a name="getMinimum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinimum</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.100">getMinimum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the minimum</dd></dl>
+</li>
+</ul>
+<a name="getMinimumPositions(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinimumPositions</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;int[]&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.106">getMinimumPositions</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the minimum positions</dd></dl>
+</li>
+</ul>
+<a name="getCount(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCount</h4>
+<pre>long&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.112">getCount</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the number of samples</dd></dl>
+</li>
+</ul>
+<a name="getMean(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMean</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.118">getMean</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the mean of samples</dd></dl>
+</li>
+</ul>
+<a name="getSum(boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSum</h4>
+<pre><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="type parameter in StatisticsMetadata">T</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.124">getSum</a>(boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the sum of samples</dd></dl>
+</li>
+</ul>
+<a name="getVariance(boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVariance</h4>
+<pre>double&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.131">getVariance</a>(boolean&nbsp;isWholePopulation,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isWholePopulation</code> - </dd><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the variance of samples</dd></dl>
+</li>
+</ul>
+<a name="getMaximum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaximum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.139">getMaximum</a>(int&nbsp;axis,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - - Can be null, one boolean, or two booleans. By default, both are false. If
+ the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to
+ ignore infinities separately.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the maximum</dd></dl>
+</li>
+</ul>
+<a name="getMinimum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinimum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.145">getMinimum</a>(int&nbsp;axis,
+                 boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the minimum</dd></dl>
+</li>
+</ul>
+<a name="getArgMaximum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArgMaximum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.151">getArgMaximum</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the argument at which the maximum first occurs</dd></dl>
+</li>
+</ul>
+<a name="getArgMinimum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArgMinimum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.157">getArgMinimum</a>(int&nbsp;axis,
+                    boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the argument at which the minimum first occurs</dd></dl>
+</li>
+</ul>
+<a name="getCount(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCount</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.164">getCount</a>(int&nbsp;axis,
+               boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the number of samples</dd></dl>
+</li>
+</ul>
+<a name="getMean(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMean</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.170">getMean</a>(int&nbsp;axis,
+              boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the mean of samples</dd></dl>
+</li>
+</ul>
+<a name="getSum(int, boolean...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSum</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.176">getSum</a>(int&nbsp;axis,
+             boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the sum of samples</dd></dl>
+</li>
+</ul>
+<a name="getVariance(int, boolean, boolean...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getVariance</h4>
+<pre><a href="../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/StatisticsMetadata.html#line.183">getVariance</a>(int&nbsp;axis,
+                  boolean&nbsp;isWholePopulation,
+                  boolean...&nbsp;ignoreInvalids)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>isWholePopulation</code> - </dd><dd><code>ignoreInvalids</code> - @see <a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html#getMaximum(boolean...)"><code>getMaximum(boolean...)</code></a> for explanation</dd>
+<dt><span class="strong">Returns:</span></dt><dd>the variance of samples</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StatisticsMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/StatisticsMetadata.html" target="_top">Frames</a></li>
+<li><a href="StatisticsMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/Transposable.html b/apidocs/2.1.1/org/eclipse/january/metadata/Transposable.html
new file mode 100644
index 0000000..0ca4bbc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/Transposable.html
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Transposable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Transposable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Transposable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Transposable.html" target="_top">Frames</a></li>
+<li><a href="Transposable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Annotation Type Transposable" class="title">Annotation Type Transposable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Retention.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Target.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>)
+public @interface <a href="../../../../src-html/org/eclipse/january/metadata/Transposable.html#line.26">Transposable</a></pre>
+<div class="block">This is an annotation for any metadata field that should be transposed. These include lazy datasets,
+ arrays and lists of lazy datasets, and maps where the values are lazy datasets.</div>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Transposable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/Transposable.html" target="_top">Frames</a></li>
+<li><a href="Transposable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/UnitMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/UnitMetadata.html
new file mode 100644
index 0000000..91c1b99
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/UnitMetadata.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UnitMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="UnitMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnitMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.eclipse.january.metadata</div>
+<h2 title="Interface UnitMetadata" class="title">Interface UnitMetadata</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../src-html/org/eclipse/january/metadata/UnitMetadata.html#line.21">UnitMetadata</a>
+extends <a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></pre>
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+<dl><dt><span class="strong">Since:</span></dt>
+  <dd>2.1</dd></dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>javax.measure.Unit&lt;?&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html#getUnit()">getUnit</a></strong>()</code>
+<div class="block">Get unit</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.january.metadata.MetadataType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></h3>
+<code><a href="../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUnit()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUnit</h4>
+<pre>javax.measure.Unit&lt;?&gt;&nbsp;<a href="../../../../src-html/org/eclipse/january/metadata/UnitMetadata.html#line.27">getUnit</a>()</pre>
+<div class="block">Get unit</div>
+<dl><dt><span class="strong">Returns:</span></dt><dd>unit of dataset</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UnitMetadata.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Prev Class</span></a></li>
+<li>Next Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/ARPESMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/ARPESMetadata.html
new file mode 100644
index 0000000..a0207b9
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/ARPESMetadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.ARPESMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.ARPESMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/ARPESMetadata.html" target="_top">Frames</a></li>
+<li><a href="ARPESMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.ARPESMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.ARPESMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.ARPESMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/ARPESMetadata.html" target="_top">Frames</a></li>
+<li><a href="ARPESMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/AxesMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/AxesMetadata.html
new file mode 100644
index 0000000..bf4a491
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/AxesMetadata.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.AxesMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.AxesMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/AxesMetadata.html" target="_top">Frames</a></li>
+<li><a href="AxesMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.AxesMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.AxesMetadata</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> with type arguments of type <a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static int[]</code></td>
+<td class="colLast"><span class="strong">DynamicMetadataUtils.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html#refreshDynamicAxesMetadata(java.util.List,%20int[])">refreshDynamicAxesMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a>&gt;&nbsp;axm,
+                                                    int[]&nbsp;shape)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/AxesMetadata.html" target="_top">Frames</a></li>
+<li><a href="AxesMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DimensionMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DimensionMetadata.html
new file mode 100644
index 0000000..be7da16
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DimensionMetadata.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.DimensionMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.DimensionMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/DimensionMetadata.html" target="_top">Frames</a></li>
+<li><a href="DimensionMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.DimensionMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.DimensionMetadata</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></strong></code>
+<div class="block">Defines the origin of a dataset which is a slice of a parent dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/DimensionMetadata.html" target="_top">Frames</a></li>
+<li><a href="DimensionMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Dirtiable.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Dirtiable.html
new file mode 100644
index 0000000..86af3dd
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Dirtiable.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.Dirtiable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.Dirtiable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Dirtiable.html" target="_top">Frames</a></li>
+<li><a href="Dirtiable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.Dirtiable" class="title">Uses of Class<br>org.eclipse.january.metadata.Dirtiable</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.Dirtiable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Dirtiable.html" target="_top">Frames</a></li>
+<li><a href="Dirtiable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html
new file mode 100644
index 0000000..cab07f1
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.DynamicConnectionInfo (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.DynamicConnectionInfo (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html" target="_top">Frames</a></li>
+<li><a href="DynamicConnectionInfo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.DynamicConnectionInfo" class="title">Uses of Class<br>org.eclipse.january.metadata.DynamicConnectionInfo</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.DynamicConnectionInfo</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/DynamicConnectionInfo.html" target="_top">Frames</a></li>
+<li><a href="DynamicConnectionInfo.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html
new file mode 100644
index 0000000..f5493d4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.DynamicMetadataUtils (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.DynamicMetadataUtils (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="DynamicMetadataUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.DynamicMetadataUtils" class="title">Uses of Class<br>org.eclipse.january.metadata.DynamicMetadataUtils</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.DynamicMetadataUtils</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/DynamicMetadataUtils.html" target="_top">Frames</a></li>
+<li><a href="DynamicMetadataUtils.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/ErrorMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/ErrorMetadata.html
new file mode 100644
index 0000000..639a9c8
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/ErrorMetadata.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.ErrorMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.ErrorMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/ErrorMetadata.html" target="_top">Frames</a></li>
+<li><a href="ErrorMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.ErrorMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.ErrorMetadata</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getErrorMetadata()">getErrorMetadata</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/ErrorMetadata.html" target="_top">Frames</a></li>
+<li><a href="ErrorMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/IExtendedMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/IExtendedMetadata.html
new file mode 100644
index 0000000..6b8a69c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/IExtendedMetadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.IExtendedMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.IExtendedMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/IExtendedMetadata.html" target="_top">Frames</a></li>
+<li><a href="IExtendedMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.IExtendedMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.IExtendedMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.IExtendedMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/IExtendedMetadata.html" target="_top">Frames</a></li>
+<li><a href="IExtendedMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/IMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/IMetadata.html
new file mode 100644
index 0000000..e9208cf
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/IMetadata.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.IMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.IMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/IMetadata.html" target="_top">Frames</a></li>
+<li><a href="IMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.IMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.IMetadata</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><span class="strong">IMetadataProvider.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><span class="strong">IDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IDataset.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block"><strong>Deprecated.</strong>&nbsp;
+<div class="block"><i>Use <code>#getFirstMetadata(IMetadata.class)</code> instead</i></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a> in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a> that return <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><span class="strong">IMetaLoader.</span><code><strong><a href="../../../../../org/eclipse/january/io/IMetaLoader.html#getMetadata()">getMetadata</a></strong>()</code>
+<div class="block">Returns an object containing some data about the data file
+ to be read in.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></strong></code>
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that implement <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></strong></code>
+<div class="block">Basic implementation of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that return <a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><span class="strong">Metadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/Metadata.html#clone()">clone</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></code></td>
+<td class="colLast"><span class="strong">IMetadata.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/IMetadata.html#clone()">clone</a></strong>()</code>
+<div class="block">Copy of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/IMetadata.html" target="_top">Frames</a></li>
+<li><a href="IMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MaskMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MaskMetadata.html
new file mode 100644
index 0000000..62a6ff2
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MaskMetadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.MaskMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.MaskMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/MaskMetadata.html" target="_top">Frames</a></li>
+<li><a href="MaskMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.MaskMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.MaskMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.MaskMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/MaskMetadata.html" target="_top">Frames</a></li>
+<li><a href="MaskMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Metadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Metadata.html
new file mode 100644
index 0000000..771807b
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Metadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.Metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.Metadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Metadata.html" target="_top">Frames</a></li>
+<li><a href="Metadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.Metadata" class="title">Uses of Class<br>org.eclipse.january.metadata.Metadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.Metadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Metadata.html" target="_top">Frames</a></li>
+<li><a href="Metadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MetadataFactory.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MetadataFactory.html
new file mode 100644
index 0000000..fa6e899
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MetadataFactory.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.MetadataFactory (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.MetadataFactory (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/MetadataFactory.html" target="_top">Frames</a></li>
+<li><a href="MetadataFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.MetadataFactory" class="title">Uses of Class<br>org.eclipse.january.metadata.MetadataFactory</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.MetadataFactory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/MetadataFactory.html" target="_top">Frames</a></li>
+<li><a href="MetadataFactory.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MetadataType.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MetadataType.html
new file mode 100644
index 0000000..86ca360
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/MetadataType.html
@@ -0,0 +1,453 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.MetadataType (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.MetadataType (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/MetadataType.html" target="_top">Frames</a></li>
+<li><a href="MetadataType.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.MetadataType" class="title">Uses of Interface<br>org.eclipse.january.metadata.MetadataType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type parameters of type <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#metadata">metadata</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDataset.html#oMetadata">oMetadata</a></strong></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type parameters of type <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br>S</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br>S</code></td>
+<td class="colLast"><span class="strong">IMetadataProvider.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html#getFirstMetadata(java.lang.Class)">getFirstMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#getMetadata(java.lang.Class)">getMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;S extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>,T extends S&gt;&nbsp;<br><a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;S&gt;</code></td>
+<td class="colLast"><span class="strong">IMetadataProvider.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/IMetadataProvider.html#getMetadata(java.lang.Class)">getMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return types with arguments of type <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata()">copyMetadata</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>
+<div class="block">Find first sub-interface of (or class that directly implements) MetadataType</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getMetadataMap(org.eclipse.january.dataset.Dataset,%20boolean)">getMetadataMap</a></strong>(<a href="../../../../../org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>&nbsp;a,
+                            boolean&nbsp;clone)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with parameters of type <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a></strong>(<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#addMetadata(org.eclipse.january.metadata.MetadataType)">addMetadata</a></strong>(<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>
+<div class="block">Add metadata to the dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></strong>(<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#setMetadata(org.eclipse.january.metadata.MetadataType)">setMetadata</a></strong>(<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&nbsp;metadata)</code>
+<div class="block">Set metadata on the dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> with type arguments of type <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#clearMetadata(java.lang.Class)">clearMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="strong">ILazyDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/ILazyDataset.html#clearMetadata(java.lang.Class)">clearMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>
+<div class="block">Remove metadata of given class</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#copyMetadata(java.util.Map)">copyMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;metadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#findMetadataTypeSubInterfaces(java.lang.Class)">findMetadataTypeSubInterfaces</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;clazz)</code>
+<div class="block">Find first sub-interface of (or class that directly implements) MetadataType</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;oldMetadata)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="strong">LazyDatasetBase.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/LazyDatasetBase.html#restoreMetadata(java.util.Map)">restoreMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&gt;&nbsp;oldMetadata)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a> in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></strong></code>
+<div class="block">This metadata describes ARPES-related information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></strong></code>
+<div class="block">This metadata describes any axis information associated with a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></strong></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></strong></code>
+<div class="block">This metadata describes any error associated with a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></strong></code>
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></strong></code>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a></strong></code>
+<div class="block">This metadata describes masking information associated with a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></strong></code>
+<div class="block">Defines the origin of a dataset which is a slice of a parent dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></strong></code>
+<div class="block">This metadata describes Peem-related information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;T&gt;</strong></code>
+<div class="block">Store standard statistics</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></strong></code>
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that implement <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></strong></code>
+<div class="block">This metadata is set by a remote dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><strong><a href="../../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></strong></code>
+<div class="block">Basic implementation of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> with type parameters of type <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<br>T</code></td>
+<td class="colLast"><span class="strong">MetadataFactory.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/MetadataFactory.html#createMetadata(java.lang.Class,%20java.lang.Object...)">createMetadata</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz,
+                            <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;arguments)</code>
+<div class="block">Create a metadata object of given class with given arguments</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T extends <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>&gt;&nbsp;<br>void</code></td>
+<td class="colLast"><span class="strong">MetadataFactory.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/MetadataFactory.html#registerClass(java.lang.Class)">registerClass</a></strong>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;clazz)</code>
+<div class="block">Register metadata class</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> that return <a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></td>
+<td class="colLast"><span class="strong">MetadataType.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/MetadataType.html#clone()">clone</a></strong>()</code>
+<div class="block">Make a deep copy of metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></code></td>
+<td class="colLast"><span class="strong">DynamicConnectionInfo.</span><code><strong><a href="../../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html#clone()">clone</a></strong>()</code>
+<div class="block">Make a deep copy of metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/MetadataType.html" target="_top">Frames</a></li>
+<li><a href="MetadataType.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/OriginMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/OriginMetadata.html
new file mode 100644
index 0000000..0b9fe6a
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/OriginMetadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.OriginMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.OriginMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/OriginMetadata.html" target="_top">Frames</a></li>
+<li><a href="OriginMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.OriginMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.OriginMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.OriginMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/OriginMetadata.html" target="_top">Frames</a></li>
+<li><a href="OriginMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/PeemMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/PeemMetadata.html
new file mode 100644
index 0000000..0e4f05c
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/PeemMetadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.PeemMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.PeemMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/PeemMetadata.html" target="_top">Frames</a></li>
+<li><a href="PeemMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.PeemMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.PeemMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.PeemMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/PeemMetadata.html" target="_top">Frames</a></li>
+<li><a href="PeemMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Reshapeable.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Reshapeable.html
new file mode 100644
index 0000000..700b8fa
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Reshapeable.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.Reshapeable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.Reshapeable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Reshapeable.html" target="_top">Frames</a></li>
+<li><a href="Reshapeable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.Reshapeable" class="title">Uses of Class<br>org.eclipse.january.metadata.Reshapeable</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.Reshapeable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Reshapeable.html" target="_top">Frames</a></li>
+<li><a href="Reshapeable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Sliceable.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Sliceable.html
new file mode 100644
index 0000000..50a47fe
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Sliceable.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.Sliceable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.Sliceable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Sliceable.html" target="_top">Frames</a></li>
+<li><a href="Sliceable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.Sliceable" class="title">Uses of Class<br>org.eclipse.january.metadata.Sliceable</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.Sliceable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Sliceable.html" target="_top">Frames</a></li>
+<li><a href="Sliceable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/StatisticsMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/StatisticsMetadata.html
new file mode 100644
index 0000000..1719c69
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/StatisticsMetadata.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.StatisticsMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.StatisticsMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/StatisticsMetadata.html" target="_top">Frames</a></li>
+<li><a href="StatisticsMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.StatisticsMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.StatisticsMetadata</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a> in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></h3>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a> that return <a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;double[]&gt;</code></td>
+<td class="colLast"><span class="strong">AbstractCompoundDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractCompoundDataset.html#getCompoundStats()">getCompoundStats</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>&gt;</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getStats()">getStats</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="strong">AbstractDataset.</span><code><strong><a href="../../../../../org/eclipse/january/dataset/AbstractDataset.html#getStringStats()">getStringStats</a></strong>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/StatisticsMetadata.html" target="_top">Frames</a></li>
+<li><a href="StatisticsMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Transposable.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Transposable.html
new file mode 100644
index 0000000..00273d4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/Transposable.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.eclipse.january.metadata.Transposable (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Class org.eclipse.january.metadata.Transposable (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Transposable.html" target="_top">Frames</a></li>
+<li><a href="Transposable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.eclipse.january.metadata.Transposable" class="title">Uses of Class<br>org.eclipse.january.metadata.Transposable</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.Transposable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/Transposable.html" target="_top">Frames</a></li>
+<li><a href="Transposable.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/class-use/UnitMetadata.html b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/UnitMetadata.html
new file mode 100644
index 0000000..704808d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/class-use/UnitMetadata.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.eclipse.january.metadata.UnitMetadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Interface org.eclipse.january.metadata.UnitMetadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.eclipse.january.metadata.UnitMetadata" class="title">Uses of Interface<br>org.eclipse.january.metadata.UnitMetadata</h2>
+</div>
+<div class="classUseContainer">No usage of org.eclipse.january.metadata.UnitMetadata</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/eclipse/january/metadata/class-use/UnitMetadata.html" target="_top">Frames</a></li>
+<li><a href="UnitMetadata.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/package-frame.html b/apidocs/2.1.1/org/eclipse/january/metadata/package-frame.html
new file mode 100644
index 0000000..daa026e
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/package-frame.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/eclipse/january/metadata/package-summary.html" target="classFrame">org.eclipse.january.metadata</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ARPESMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>ARPESMetadata</i></a></li>
+<li><a href="AxesMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>AxesMetadata</i></a></li>
+<li><a href="DimensionMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>DimensionMetadata</i></a></li>
+<li><a href="ErrorMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>ErrorMetadata</i></a></li>
+<li><a href="IExtendedMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>IExtendedMetadata</i></a></li>
+<li><a href="IMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>IMetadata</i></a></li>
+<li><a href="MaskMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>MaskMetadata</i></a></li>
+<li><a href="MetadataType.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>MetadataType</i></a></li>
+<li><a href="OriginMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>OriginMetadata</i></a></li>
+<li><a href="PeemMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>PeemMetadata</i></a></li>
+<li><a href="StatisticsMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>StatisticsMetadata</i></a></li>
+<li><a href="UnitMetadata.html" title="interface in org.eclipse.january.metadata" target="classFrame"><i>UnitMetadata</i></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata" target="classFrame">DynamicConnectionInfo</a></li>
+<li><a href="DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata" target="classFrame">DynamicMetadataUtils</a></li>
+<li><a href="Metadata.html" title="class in org.eclipse.january.metadata" target="classFrame">Metadata</a></li>
+<li><a href="MetadataFactory.html" title="class in org.eclipse.january.metadata" target="classFrame">MetadataFactory</a></li>
+</ul>
+<h2 title="Annotation Types">Annotation Types</h2>
+<ul title="Annotation Types">
+<li><a href="Dirtiable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Dirtiable</a></li>
+<li><a href="Reshapeable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Reshapeable</a></li>
+<li><a href="Sliceable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Sliceable</a></li>
+<li><a href="Transposable.html" title="annotation in org.eclipse.january.metadata" target="classFrame">Transposable</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/package-summary.html b/apidocs/2.1.1/org/eclipse/january/metadata/package-summary.html
new file mode 100644
index 0000000..fafbbed
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/package-summary.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january.metadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/package-summary.html">Prev Package</a></li>
+<li>Next Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.january.metadata</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata">ARPESMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes ARPES-related information</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata">AxesMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes any axis information associated with a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata">DimensionMetadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata">ErrorMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes any error associated with a dataset</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata">IExtendedMetadata</a></td>
+<td class="colLast">
+<div class="block">This is an interface that has been designed to add information about a file in addition to
+ information which has been implemented in IMetadata.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a></td>
+<td class="colLast">
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata">MaskMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes masking information associated with a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a></td>
+<td class="colLast">
+<div class="block">This is a marker interface for all metadata items which can be associated
+ with a dataset.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata">OriginMetadata</a></td>
+<td class="colLast">
+<div class="block">Defines the origin of a dataset which is a slice of a parent dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata">PeemMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes Peem-related information</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata">StatisticsMetadata</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">Store standard statistics</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata">UnitMetadata</a></td>
+<td class="colLast">
+<div class="block">This metadata describes the unit associated with the quantity stored in a dataset</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">DynamicConnectionInfo</a></td>
+<td class="colLast">
+<div class="block">This metadata is set by a remote dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata">DynamicMetadataUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">Metadata</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of metadata</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata">MetadataFactory</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata">Dirtiable</a></td>
+<td class="colLast">
+<div class="block">This is an annotation for any metadata field that should be set to a dirty state.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata">Reshapeable</a></td>
+<td class="colLast">
+<div class="block">This is an annotation for any metadata field that should be reshaped or squeezed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata">Sliceable</a></td>
+<td class="colLast">
+<div class="block">This is an annotation for any metadata field that should be sliced.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata">Transposable</a></td>
+<td class="colLast">
+<div class="block">This is an annotation for any metadata field that should be transposed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/package-summary.html">Prev Package</a></li>
+<li>Next Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/package-tree.html b/apidocs/2.1.1/org/eclipse/january/metadata/package-tree.html
new file mode 100644
index 0000000..d11d3dc
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/package-tree.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january.metadata Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january.metadata Class Hierarchy (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.eclipse.january.metadata</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">DynamicConnectionInfo</span></a> (implements org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">DynamicMetadataUtils</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Metadata</span></a> (implements org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">MetadataFactory</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Cloneable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><span class="strong">IDataAnalysisObject</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">MetadataType</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="strong">Serializable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">MetadataType</span></a> (also extends java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="../../../../org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Transposable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Sliceable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Reshapeable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="../../../../org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Dirtiable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/eclipse/january/io/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/metadata/package-use.html b/apidocs/2.1.1/org/eclipse/january/metadata/package-use.html
new file mode 100644
index 0000000..e92a0b4
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/metadata/package-use.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.eclipse.january.metadata (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.eclipse.january.metadata (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.eclipse.january.metadata" class="title">Uses of Package<br>org.eclipse.january.metadata</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> used by <a href="../../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/ErrorMetadata.html#org.eclipse.january.dataset">ErrorMetadata</a>
+<div class="block">This metadata describes any error associated with a dataset</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/IMetadata.html#org.eclipse.january.dataset">IMetadata</a>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/MetadataType.html#org.eclipse.january.dataset">MetadataType</a>
+<div class="block">This is a marker interface for all metadata items which can be associated
+ with a dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/StatisticsMetadata.html#org.eclipse.january.dataset">StatisticsMetadata</a>
+<div class="block">Store standard statistics</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> used by <a href="../../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/IMetadata.html#org.eclipse.january.io">IMetadata</a>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a> used by <a href="../../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/AxesMetadata.html#org.eclipse.january.metadata">AxesMetadata</a>
+<div class="block">This metadata describes any axis information associated with a dataset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/DimensionMetadata.html#org.eclipse.january.metadata">DimensionMetadata</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/IMetadata.html#org.eclipse.january.metadata">IMetadata</a>
+<div class="block">This interface describes the minimal metadata information that should be 
+ associated with a Dataset or DataHolder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/eclipse/january/metadata/class-use/MetadataType.html#org.eclipse.january.metadata">MetadataType</a>
+<div class="block">This is a marker interface for all metadata items which can be associated
+ with a dataset.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/eclipse/january/metadata/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/package-frame.html b/apidocs/2.1.1/org/eclipse/january/package-frame.html
new file mode 100644
index 0000000..52096af
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/package-frame.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar"><a href="../../../org/eclipse/january/package-summary.html" target="classFrame">org.eclipse.january</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="IMonitor.html" title="interface in org.eclipse.january" target="classFrame"><i>IMonitor</i></a></li>
+<li><a href="INameable.html" title="interface in org.eclipse.january" target="classFrame"><i>INameable</i></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="IMonitor.Stub.html" title="class in org.eclipse.january" target="classFrame">IMonitor.Stub</a></li>
+</ul>
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="DatasetException.html" title="class in org.eclipse.january" target="classFrame">DatasetException</a></li>
+<li><a href="MetadataException.html" title="class in org.eclipse.january" target="classFrame">MetadataException</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/package-summary.html b/apidocs/2.1.1/org/eclipse/january/package-summary.html
new file mode 100644
index 0000000..1c92721
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/package-summary.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Package</li>
+<li><a href="../../../org/eclipse/january/dataset/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.eclipse.january</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a></td>
+<td class="colLast">
+<div class="block">Interface to monitoring loading of files, which may take a while.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a></td>
+<td class="colLast">
+<div class="block">Simple interface to provide a data object with a name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january">IMonitor.Stub</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a></td>
+<td class="colLast">
+<div class="block">Exception class associated with datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">MetadataException</a></td>
+<td class="colLast">
+<div class="block">Exception associated with metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev Package</li>
+<li><a href="../../../org/eclipse/january/dataset/package-summary.html">Next Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/package-tree.html b/apidocs/2.1.1/org/eclipse/january/package-tree.html
new file mode 100644
index 0000000..14109ca
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/package-tree.html
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.eclipse.january Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="org.eclipse.january Class Hierarchy (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/eclipse/january/dataset/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.eclipse.january</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">org.eclipse.january.<a href="../../../org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">IMonitor.Stub</span></a> (implements org.eclipse.january.<a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>)</li>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="strong">Exception</span></a>
+<ul>
+<li type="circle">org.eclipse.january.<a href="../../../org/eclipse/january/DatasetException.html" title="class in org.eclipse.january"><span class="strong">DatasetException</span></a>
+<ul>
+<li type="circle">org.eclipse.january.<a href="../../../org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="strong">MetadataException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.eclipse.january.<a href="../../../org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">IMonitor</span></a></li>
+<li type="circle">org.eclipse.january.<a href="../../../org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">INameable</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/eclipse/january/dataset/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/org/eclipse/january/package-use.html b/apidocs/2.1.1/org/eclipse/january/package-use.html
new file mode 100644
index 0000000..3e8706d
--- /dev/null
+++ b/apidocs/2.1.1/org/eclipse/january/package-use.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.eclipse.january (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Uses of Package org.eclipse.january (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.eclipse.january" class="title">Uses of Package<br>org.eclipse.january</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../org/eclipse/january/package-summary.html">org.eclipse.january</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january">org.eclipse.january</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.dataset">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.eclipse.january.io">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.eclipse.january.metadata">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/eclipse/january/package-summary.html">org.eclipse.january</a> used by <a href="../../../org/eclipse/january/package-summary.html">org.eclipse.january</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/DatasetException.html#org.eclipse.january">DatasetException</a>
+<div class="block">Exception class associated with datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/IMonitor.html#org.eclipse.january">IMonitor</a>
+<div class="block">Interface to monitoring loading of files, which may take a while.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/eclipse/january/package-summary.html">org.eclipse.january</a> used by <a href="../../../org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/DatasetException.html#org.eclipse.january.dataset">DatasetException</a>
+<div class="block">Exception class associated with datasets</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/IMonitor.html#org.eclipse.january.dataset">IMonitor</a>
+<div class="block">Interface to monitoring loading of files, which may take a while.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/INameable.html#org.eclipse.january.dataset">INameable</a>
+<div class="block">Simple interface to provide a data object with a name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/MetadataException.html#org.eclipse.january.dataset">MetadataException</a>
+<div class="block">Exception associated with metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.io">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/eclipse/january/package-summary.html">org.eclipse.january</a> used by <a href="../../../org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/IMonitor.html#org.eclipse.january.io">IMonitor</a>
+<div class="block">Interface to monitoring loading of files, which may take a while.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata">
+<!--   -->
+</a>
+<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/eclipse/january/package-summary.html">org.eclipse.january</a> used by <a href="../../../org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/eclipse/january/class-use/MetadataException.html#org.eclipse.january.metadata">MetadataException</a>
+<div class="block">Exception associated with metadata</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/eclipse/january/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/overview-frame.html b/apidocs/2.1.1/overview-frame.html
new file mode 100644
index 0000000..ae5b562
--- /dev/null
+++ b/apidocs/2.1.1/overview-frame.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:29 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<div class="indexHeader"><a href="allclasses-frame.html" target="packageFrame">All Classes</a></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/eclipse/january/package-frame.html" target="packageFrame">org.eclipse.january</a></li>
+<li><a href="org/eclipse/january/dataset/package-frame.html" target="packageFrame">org.eclipse.january.dataset</a></li>
+<li><a href="org/eclipse/january/io/package-frame.html" target="packageFrame">org.eclipse.january.io</a></li>
+<li><a href="org/eclipse/january/metadata/package-frame.html" target="packageFrame">org.eclipse.january.metadata</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/overview-summary.html b/apidocs/2.1.1/overview-summary.html
new file mode 100644
index 0000000..8515b1d
--- /dev/null
+++ b/apidocs/2.1.1/overview-summary.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Overview (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">org.eclipse.january 2.1.1 API.</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/eclipse/january/package-summary.html">org.eclipse.january</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/eclipse/january/dataset/package-summary.html">org.eclipse.january.dataset</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/eclipse/january/io/package-summary.html">org.eclipse.january.io</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/eclipse/january/metadata/package-summary.html">org.eclipse.january.metadata</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/overview-tree.html b/apidocs/2.1.1/overview-tree.html
new file mode 100644
index 0000000..9a71031
--- /dev/null
+++ b/apidocs/2.1.1/overview-tree.html
@@ -0,0 +1,662 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:31 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Class Hierarchy (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="strong">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/eclipse/january/package-tree.html">org.eclipse.january</a>, </li>
+<li><a href="org/eclipse/january/dataset/package-tree.html">org.eclipse.january.dataset</a>, </li>
+<li><a href="org/eclipse/january/io/package-tree.html">org.eclipse.january.io</a>, </li>
+<li><a href="org/eclipse/january/metadata/package-tree.html">org.eclipse.january.metadata</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">BinaryOperation.Stub</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Exponentiation.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Exponentiation</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CollectionStats.html" title="class in org.eclipse.january.dataset"><span class="strong">CollectionStats</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Comparisons.html" title="class in org.eclipse.january.dataset"><span class="strong">Comparisons</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DataListenerDelegate.html" title="class in org.eclipse.january.dataset"><span class="strong">DataListenerDelegate</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetFactory.html" title="class in org.eclipse.january.dataset"><span class="strong">DatasetFactory</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DatasetUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">DatasetUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DTypeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">DTypeUtils</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata"><span class="strong">DynamicConnectionInfo</span></a> (implements org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/DynamicMetadataUtils.html" title="class in org.eclipse.january.metadata"><span class="strong">DynamicMetadataUtils</span></a></li>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util"><span class="strong">EventObject</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset"><span class="strong">DataEvent</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.internal.GeneratedMaths
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Maths.html" title="class in org.eclipse.january.dataset"><span class="strong">Maths</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.<a href="org/eclipse/january/IMonitor.Stub.html" title="class in org.eclipse.january"><span class="strong">IMonitor.Stub</span></a> (implements org.eclipse.january.<a href="org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january">IMonitor</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IndexIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanBroadcastIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanContiguousIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanNullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanNullIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastIteratorBase.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastIteratorBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastPairIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ContiguousPairIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousPairIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastSelfIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastSelfIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BroadcastSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">BroadcastSingleIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ContiguousSingleIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousSingleIterator</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ContiguousIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ContiguousIteratorWithPosition.html" title="class in org.eclipse.january.dataset"><span class="strong">ContiguousIteratorWithPosition</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IntegerIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegerIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IntegersIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegersIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/PositionIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">PositionIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SingleInputBroadcastIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SingleInputBroadcastIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SingleItemIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SingleItemIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceIterator</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">NullIterator</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">StrideIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceNDIterator.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceNDIterator</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/InterpolatorUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">InterpolatorUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDatasetBase</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AbstractDataset</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset">Dataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AbstractCompoundDataset</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset">CompoundDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundByteDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundDoubleDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ComplexDoubleDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundFloatDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ComplexFloatDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundIntegerDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundLongDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">CompoundShortDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">RGBDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanDatasetBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">BooleanDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ByteDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">DoubleDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">FloatDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">IntegerDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LongDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">ObjectDatasetBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ObjectDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">ShortDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset"><span class="strong">StringDatasetBase</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">StringDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset"><span class="strong">DateDatasetImpl</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset">DateDataset</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">AggregateDataset</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDataset</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyDynamicDataset</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset">IDynamicDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyWriteableDataset</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset">ILazyWriteableDataset</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LazyMaths.html" title="class in org.eclipse.january.dataset"><span class="strong">LazyMaths</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LinearAlgebra.html" title="class in org.eclipse.january.dataset"><span class="strong">LinearAlgebra</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata"><span class="strong">Metadata</span></a> (implements org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata">IMetadata</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataFactory.html" title="class in org.eclipse.january.metadata"><span class="strong">MetadataFactory</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Addition.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Addition</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Division.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Division</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.DivisionTowardsFloor</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.DivisionWithZero.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.DivisionWithZero</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Maximum.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Maximum</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Minimum.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Minimum</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Multiplication.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Multiplication</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Negation.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Negation</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Remainder.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Remainder</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.Subtraction.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.Subtraction</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.UseBase.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseBase</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset">BinaryOperation</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.UseIfEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfEqualTo</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.UseIfGreaterThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfGreaterThan</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfGreaterThanOrEqualTo</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.UseIfLessThan.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfLessThan</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html" title="class in org.eclipse.january.dataset"><span class="strong">Operations.UseIfLessThanOrEqualTo</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Outliers.html" title="class in org.eclipse.january.dataset"><span class="strong">Outliers</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Random.html" title="class in org.eclipse.january.dataset"><span class="strong">Random</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/RunningAverage.html" title="class in org.eclipse.january.dataset"><span class="strong">RunningAverage</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ShapeChangeChecker.html" title="class in org.eclipse.january.dataset"><span class="strong">ShapeChangeChecker</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ShapeUtils.html" title="class in org.eclipse.january.dataset"><span class="strong">ShapeUtils</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Slice</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">SliceND</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Stats.html" title="class in org.eclipse.january.dataset"><span class="strong">Stats</span></a></li>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="strong">Exception</span></a>
+<ul>
+<li type="circle">org.eclipse.january.<a href="org/eclipse/january/DatasetException.html" title="class in org.eclipse.january"><span class="strong">DatasetException</span></a>
+<ul>
+<li type="circle">org.eclipse.january.<a href="org/eclipse/january/MetadataException.html" title="class in org.eclipse.january"><span class="strong">MetadataException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/UnaryOperation.Stub.html" title="class in org.eclipse.january.dataset"><span class="strong">UnaryOperation.Stub</span></a> (implements org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset">UnaryOperation</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang"><span class="strong">Cloneable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a></li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io"><span class="strong">IDataAnalysisObject</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">MetadataType</span></a> (also extends java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">java.util.<a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util"><span class="strong">EventListener</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataListener.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataListener</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetChangeChecker</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicShape</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetConnector</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset">IFileConnection</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IFileConnection.html" title="interface in org.eclipse.january.dataset"><span class="strong">IFileConnection</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDatasetConnector.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDatasetConnector</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IRemoteData.html" title="interface in org.eclipse.january.dataset"><span class="strong">IRemoteData</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyDynamicLoader.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyDynamicLoader</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset"><span class="strong">IMetadataProvider</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> (also extends org.eclipse.january.<a href="org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/IMetaLoader.html" title="interface in org.eclipse.january.io"><span class="strong">IMetaLoader</span></a></li>
+<li type="circle">org.eclipse.january.<a href="org/eclipse/january/IMonitor.html" title="interface in org.eclipse.january"><span class="strong">IMonitor</span></a></li>
+<li type="circle">org.eclipse.january.<a href="org/eclipse/january/INameable.html" title="interface in org.eclipse.january"><span class="strong">INameable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">IOperation</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/BinaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">BinaryOperation</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/UnaryOperation.html" title="interface in org.eclipse.january.dataset"><span class="strong">UnaryOperation</span></a></li>
+</ul>
+</li>
+<li type="circle">java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io"><span class="strong">Serializable</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>, org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyAsyncSaver</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IMetadataProvider.html" title="interface in org.eclipse.january.dataset">IMetadataProvider</a>, org.eclipse.january.<a href="org/eclipse/january/INameable.html" title="interface in org.eclipse.january">INameable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Dataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">Dataset</span></a>
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/CompoundDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">CompoundDataset</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/DateDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">DateDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">IDynamicDataset</span></a> (also extends org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/IDynamicShape.html" title="interface in org.eclipse.january.dataset">IDynamicShape</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyLoader</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyAsyncSaver</span></a></li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazySaver</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyAsyncSaver</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazySaver</span></a>
+<ul>
+<li type="circle">org.eclipse.january.io.<a href="org/eclipse/january/io/ILazyAsyncSaver.html" title="interface in org.eclipse.january.io"><span class="strong">ILazyAsyncSaver</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/ILazyWriteableDataset.html" title="interface in org.eclipse.january.dataset"><span class="strong">ILazyWriteableDataset</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata">MetadataType</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MetadataType.html" title="interface in org.eclipse.january.metadata"><span class="strong">MetadataType</span></a> (also extends java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ARPESMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ARPESMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/AxesMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">AxesMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/DimensionMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">DimensionMetadata</span></a>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/ErrorMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">ErrorMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IMetadata</span></a> (also extends org.eclipse.january.io.<a href="org/eclipse/january/io/IDataAnalysisObject.html" title="interface in org.eclipse.january.io">IDataAnalysisObject</a>, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/IExtendedMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">IExtendedMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/MaskMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">MaskMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a></li>
+</ul>
+</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/OriginMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">OriginMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/PeemMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">PeemMetadata</span></a></li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/StatisticsMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">StatisticsMetadata</span></a>&lt;T&gt;</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/UnitMetadata.html" title="interface in org.eclipse.january.metadata"><span class="strong">UnitMetadata</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/Transposable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Transposable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/Sliceable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Sliceable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/Reshapeable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Reshapeable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.eclipse.january.metadata.<a href="org/eclipse/january/metadata/Dirtiable.html" title="annotation in org.eclipse.january.metadata"><span class="strong">Dirtiable</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="strong">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="strong">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/LinearAlgebra.NormOrder.html" title="enum in org.eclipse.january.dataset"><span class="strong">LinearAlgebra.NormOrder</span></a></li>
+<li type="circle">org.eclipse.january.dataset.<a href="org/eclipse/january/dataset/Comparisons.Monotonicity.html" title="enum in org.eclipse.january.dataset"><span class="strong">Comparisons.Monotonicity</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/package-list b/apidocs/2.1.1/package-list
new file mode 100644
index 0000000..e9f2c05
--- /dev/null
+++ b/apidocs/2.1.1/package-list
@@ -0,0 +1,4 @@
+org.eclipse.january
+org.eclipse.january.dataset
+org.eclipse.january.io
+org.eclipse.january.metadata
diff --git a/apidocs/2.1.1/resources/background.gif b/apidocs/2.1.1/resources/background.gif
new file mode 100644
index 0000000..f471940
--- /dev/null
+++ b/apidocs/2.1.1/resources/background.gif
Binary files differ
diff --git a/apidocs/2.1.1/resources/tab.gif b/apidocs/2.1.1/resources/tab.gif
new file mode 100644
index 0000000..1a73a83
--- /dev/null
+++ b/apidocs/2.1.1/resources/tab.gif
Binary files differ
diff --git a/apidocs/2.1.1/resources/titlebar.gif b/apidocs/2.1.1/resources/titlebar.gif
new file mode 100644
index 0000000..17443b3
--- /dev/null
+++ b/apidocs/2.1.1/resources/titlebar.gif
Binary files differ
diff --git a/apidocs/2.1.1/resources/titlebar_end.gif b/apidocs/2.1.1/resources/titlebar_end.gif
new file mode 100644
index 0000000..3ad78d4
--- /dev/null
+++ b/apidocs/2.1.1/resources/titlebar_end.gif
Binary files differ
diff --git a/apidocs/2.1.1/serialized-form.html b/apidocs/2.1.1/serialized-form.html
new file mode 100644
index 0000000..f7f2e3f
--- /dev/null
+++ b/apidocs/2.1.1/serialized-form.html
@@ -0,0 +1,960 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_80) on Mon Mar 05 08:19:30 EST 2018 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (The Eclipse January API Documentation)</title>
+<meta name="date" content="2018-03-05">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<script type="text/javascript"><!--
+    if (location.href.indexOf('is-external=true') == -1) {
+        parent.document.title="Serialized Form (The Eclipse January API Documentation)";
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar_top">
+<!--   -->
+</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.eclipse.january</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.DatasetException">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">org.eclipse.january.DatasetException</a> extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>8936607081910736618L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.MetadataException">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/MetadataException.html" title="class in org.eclipse.january">org.eclipse.january.MetadataException</a> extends <a href="org/eclipse/january/DatasetException.html" title="class in org.eclipse.january">DatasetException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>8699903515753503664L</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.eclipse.january.dataset</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.dataset.AbstractCompoundDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractCompoundDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>isize</h4>
+<pre>int isize</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.AbstractDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AbstractDataset</a> extends <a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre>int size</pre>
+</li>
+<li class="blockList">
+<h4>stride</h4>
+<pre>int[] stride</pre>
+</li>
+<li class="blockList">
+<h4>offset</h4>
+<pre>int offset</pre>
+</li>
+<li class="blockList">
+<h4>odata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a> odata</pre>
+<div class="block">The data itself, held in a 1D array, but the object will wrap it to appear as possessing as many dimensions as
+ wanted</div>
+</li>
+<li class="blockListLast">
+<h4>stringFormat</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/text/Format.html?is-external=true" title="class or interface in java.text">Format</a> stringFormat</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.AggregateDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.AggregateDataset</a> extends <a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-5523566223386837581L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre><a href="org/eclipse/january/dataset/ILazyDataset.html" title="interface in org.eclipse.january.dataset">ILazyDataset</a>[] data</pre>
+</li>
+<li class="blockList">
+<h4>map</h4>
+<pre>int[] map</pre>
+</li>
+<li class="blockList">
+<h4>offset</h4>
+<pre>int[] offset</pre>
+</li>
+<li class="blockList">
+<h4>size</h4>
+<pre>int size</pre>
+</li>
+<li class="blockList">
+<h4>dtype</h4>
+<pre>int dtype</pre>
+</li>
+<li class="blockList">
+<h4>isize</h4>
+<pre>int isize</pre>
+</li>
+<li class="blockList">
+<h4>base</h4>
+<pre><a href="org/eclipse/january/dataset/AggregateDataset.html" title="class in org.eclipse.january.dataset">AggregateDataset</a> base</pre>
+</li>
+<li class="blockList">
+<h4>sliceStart</h4>
+<pre>int[] sliceStart</pre>
+</li>
+<li class="blockListLast">
+<h4>sliceStep</h4>
+<pre>int[] sliceStep</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.BooleanDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/BooleanDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanDataset</a> extends <a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">BooleanDatasetBase</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.BooleanDatasetBase">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/BooleanDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.BooleanDatasetBase</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>boolean[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.ByteDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/ByteDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ByteDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>byte[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.ComplexDoubleDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/ComplexDoubleDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ComplexDoubleDataset</a> extends <a href="org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">CompoundDoubleDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.ComplexFloatDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/ComplexFloatDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ComplexFloatDataset</a> extends <a href="org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">CompoundFloatDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.CompoundByteDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/CompoundByteDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundByteDataset</a> extends <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>byte[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.CompoundDoubleDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/CompoundDoubleDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundDoubleDataset</a> extends <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>double[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.CompoundFloatDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/CompoundFloatDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundFloatDataset</a> extends <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>float[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.CompoundIntegerDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/CompoundIntegerDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundIntegerDataset</a> extends <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>int[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.CompoundLongDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/CompoundLongDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundLongDataset</a> extends <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>long[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.CompoundShortDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.CompoundShortDataset</a> extends <a href="org/eclipse/january/dataset/AbstractCompoundDataset.html" title="class in org.eclipse.january.dataset">AbstractCompoundDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>short[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.DataEvent">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/DataEvent.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.DataEvent</a> extends <a href="https://docs.oracle.com/javase/7/docs/api/java/util/EventObject.html?is-external=true" title="class or interface in java.util">EventObject</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>751125872769278449L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>shape</h4>
+<pre>int[] shape</pre>
+</li>
+<li class="blockList">
+<h4>filePath</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> filePath</pre>
+<div class="block">Optionally, we can indicate where the file path was.</div>
+</li>
+<li class="blockListLast">
+<h4>name</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name</pre>
+<div class="block">The name of the dataset, may be ""</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.DateDatasetImpl">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/DateDatasetImpl.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.DateDatasetImpl</a> extends <a href="org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">StringDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.DoubleDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/DoubleDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.DoubleDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>double[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.FloatDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/FloatDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.FloatDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>float[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.IntegerDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/IntegerDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IntegerDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>int[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.LazyDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDataset</a> extends <a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">LazyDatasetBase</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>2467865859867440242L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>oShape</h4>
+<pre>int[] oShape</pre>
+</li>
+<li class="blockList">
+<h4>size</h4>
+<pre>long size</pre>
+</li>
+<li class="blockList">
+<h4>dtype</h4>
+<pre>int dtype</pre>
+</li>
+<li class="blockList">
+<h4>isize</h4>
+<pre>int isize</pre>
+</li>
+<li class="blockList">
+<h4>loader</h4>
+<pre><a href="org/eclipse/january/io/ILazyLoader.html" title="interface in org.eclipse.january.io">ILazyLoader</a> loader</pre>
+</li>
+<li class="blockList">
+<h4>base</h4>
+<pre><a href="org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a> base</pre>
+</li>
+<li class="blockList">
+<h4>prepShape</h4>
+<pre>int prepShape</pre>
+</li>
+<li class="blockList">
+<h4>postShape</h4>
+<pre>int postShape</pre>
+</li>
+<li class="blockList">
+<h4>begSlice</h4>
+<pre>int[] begSlice</pre>
+</li>
+<li class="blockList">
+<h4>delSlice</h4>
+<pre>int[] delSlice</pre>
+</li>
+<li class="blockList">
+<h4>map</h4>
+<pre>int[] map</pre>
+</li>
+<li class="blockListLast">
+<h4>oMetadata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; oMetadata</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.LazyDatasetBase">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/LazyDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDatasetBase</a> extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>767926846438976050L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name</pre>
+</li>
+<li class="blockList">
+<h4>shape</h4>
+<pre>int[] shape</pre>
+<div class="block">The shape or dimensions of the dataset</div>
+</li>
+<li class="blockListLast">
+<h4>metadata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">K</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">V</a>&gt; metadata</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.LazyDynamicDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyDynamicDataset</a> extends <a href="org/eclipse/january/dataset/LazyDataset.html" title="class in org.eclipse.january.dataset">LazyDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6296506563932840938L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>maxShape</h4>
+<pre>int[] maxShape</pre>
+</li>
+<li class="blockList">
+<h4>checker</h4>
+<pre><a href="org/eclipse/january/dataset/IDatasetChangeChecker.html" title="interface in org.eclipse.january.dataset">IDatasetChangeChecker</a> checker</pre>
+</li>
+<li class="blockList">
+<h4>stop</h4>
+<pre>boolean stop</pre>
+</li>
+<li class="blockListLast">
+<h4>checkingThread</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> checkingThread</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.LazyWriteableDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/LazyWriteableDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LazyWriteableDataset</a> extends <a href="org/eclipse/january/dataset/LazyDynamicDataset.html" title="class in org.eclipse.january.dataset">LazyDynamicDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-679846418938412535L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>chunks</h4>
+<pre>int[] chunks</pre>
+</li>
+<li class="blockList">
+<h4>saver</h4>
+<pre><a href="org/eclipse/january/io/ILazySaver.html" title="interface in org.eclipse.january.io">ILazySaver</a> saver</pre>
+</li>
+<li class="blockList">
+<h4>fillValue</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> fillValue</pre>
+</li>
+<li class="blockListLast">
+<h4>writeAsync</h4>
+<pre>boolean writeAsync</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.LongDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/LongDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.LongDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>long[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.ObjectDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/ObjectDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ObjectDataset</a> extends <a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">ObjectDatasetBase</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.ObjectDatasetBase">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/ObjectDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ObjectDatasetBase</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.RGBDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/RGBDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.RGBDataset</a> extends <a href="org/eclipse/january/dataset/CompoundShortDataset.html" title="class in org.eclipse.january.dataset">CompoundShortDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.ShortDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/ShortDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.ShortDataset</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre>short[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.Slice">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.Slice</a> extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>3714928852236201310L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>start</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> start</pre>
+</li>
+<li class="blockList">
+<h4>stop</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> stop</pre>
+</li>
+<li class="blockList">
+<h4>step</h4>
+<pre>int step</pre>
+</li>
+<li class="blockListLast">
+<h4>length</h4>
+<pre>int length</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.StringDataset">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/StringDataset.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.StringDataset</a> extends <a href="org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">StringDatasetBase</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+</li>
+<li class="blockList"><a name="org.eclipse.january.dataset.StringDatasetBase">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/dataset/StringDatasetBase.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.StringDatasetBase</a> extends <a href="org/eclipse/january/dataset/AbstractDataset.html" title="class in org.eclipse.january.dataset">AbstractDataset</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6891075135217265625L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>data</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] data</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.eclipse.january.io</h2>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.eclipse.january.metadata</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.eclipse.january.metadata.DynamicConnectionInfo">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/metadata/DynamicConnectionInfo.html" title="class in org.eclipse.january.metadata">org.eclipse.january.metadata.DynamicConnectionInfo</a> extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-3982740822246879131L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>receivedCount</h4>
+<pre>long receivedCount</pre>
+</li>
+<li class="blockList">
+<h4>droppedCount</h4>
+<pre>long droppedCount</pre>
+</li>
+<li class="blockListLast">
+<h4>connected</h4>
+<pre>boolean connected</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.eclipse.january.metadata.Metadata">
+<!--   -->
+</a>
+<h3>Class <a href="org/eclipse/january/metadata/Metadata.html" title="class in org.eclipse.january.metadata">org.eclipse.january.metadata.Metadata</a> extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>8640458661665962384L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList"><a name="serializedForm">
+<!--   -->
+</a>
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>metadata</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; metadata</pre>
+</li>
+<li class="blockList">
+<h4>shapes</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; shapes</pre>
+</li>
+<li class="blockList">
+<h4>userObjects</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">E</a>&gt; userObjects</pre>
+</li>
+<li class="blockListLast">
+<h4>filePath</h4>
+<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> filePath</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar_bottom">
+<!--   -->
+</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip-navbar_bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/DatasetException.html b/apidocs/2.1.1/src-html/org/eclipse/january/DatasetException.html
new file mode 100644
index 0000000..91a96ac
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/DatasetException.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Exception class associated with datasets <a name="line.13"></a>
+<span class="sourceLineNo">014</span> */<a name="line.14"></a>
+<span class="sourceLineNo">015</span>public class DatasetException extends Exception {<a name="line.15"></a>
+<span class="sourceLineNo">016</span>        private static final long serialVersionUID = 8936607081910736618L;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>        /**<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * @see Exception#Exception()<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        public DatasetException() {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>                super();<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        }<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param message<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @see Exception#Exception(String)<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public DatasetException(String message) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                super(message);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param cause<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @see Exception#Exception(Throwable)<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public DatasetException(Throwable cause) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                super(cause);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param message<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param cause<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @see Exception#Exception(String, Throwable)<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public DatasetException(String message, Throwable cause) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                super(message, cause);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        }<a name="line.48"></a>
+<span class="sourceLineNo">049</span>}<a name="line.49"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/IMonitor.Stub.html b/apidocs/2.1.1/src-html/org/eclipse/january/IMonitor.Stub.html
new file mode 100644
index 0000000..1337199
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/IMonitor.Stub.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to monitoring loading of files, which may take a while.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface IMonitor {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param amount<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public void worked(int amount);<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        <a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return true if user cancelled loading.<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public boolean isCancelled();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        <a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Starts a subtask.<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * <a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param taskName<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public void subTask(String taskName);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public class Stub implements IMonitor {<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>                @Override<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                public void worked(int amount) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        <a name="line.41"></a>
+<span class="sourceLineNo">042</span>                }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                @Override<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                public boolean isCancelled() {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        return false;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>                @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                public void subTask(String taskName) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        // nothing<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                }<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                <a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>}<a name="line.55"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/IMonitor.html b/apidocs/2.1.1/src-html/org/eclipse/january/IMonitor.html
new file mode 100644
index 0000000..1337199
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/IMonitor.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to monitoring loading of files, which may take a while.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface IMonitor {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param amount<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public void worked(int amount);<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        <a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return true if user cancelled loading.<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public boolean isCancelled();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        <a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Starts a subtask.<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * <a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param taskName<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public void subTask(String taskName);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public class Stub implements IMonitor {<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>                @Override<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                public void worked(int amount) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        <a name="line.41"></a>
+<span class="sourceLineNo">042</span>                }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                @Override<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                public boolean isCancelled() {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        return false;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>                @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                public void subTask(String taskName) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        // nothing<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                }<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                <a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>}<a name="line.55"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/INameable.html b/apidocs/2.1.1/src-html/org/eclipse/january/INameable.html
new file mode 100644
index 0000000..6061a3e
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/INameable.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2014, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Simple interface to provide a data object with a name.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> */<a name="line.14"></a>
+<span class="sourceLineNo">015</span>public interface INameable {<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>        /**<a name="line.17"></a>
+<span class="sourceLineNo">018</span>         * @return the name<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        public String getName();<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param name<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        public void setName(String name);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>}<a name="line.27"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/MetadataException.html b/apidocs/2.1.1/src-html/org/eclipse/january/MetadataException.html
new file mode 100644
index 0000000..8b37028
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/MetadataException.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Exception associated with metadata<a name="line.13"></a>
+<span class="sourceLineNo">014</span> */<a name="line.14"></a>
+<span class="sourceLineNo">015</span>public class MetadataException extends DatasetException {<a name="line.15"></a>
+<span class="sourceLineNo">016</span>        private static final long serialVersionUID = 8699903515753503664L;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>        /**<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * @see Exception#Exception()<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        public MetadataException() {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>                super();<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        }<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param message<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @see Exception#Exception(String)<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public MetadataException(String message) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                super(message);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param cause<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @see Exception#Exception(Throwable)<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public MetadataException(Throwable cause) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                super(cause);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param message<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param cause<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @see Exception#Exception(String, Throwable)<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public MetadataException(String message, Throwable cause) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                super(message, cause);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        }<a name="line.48"></a>
+<span class="sourceLineNo">049</span>}<a name="line.49"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html
new file mode 100644
index 0000000..8a1907a
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AbstractCompoundDataset.html
@@ -0,0 +1,810 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.DatasetException;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.IMonitor;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.metadata.internal.StatisticsMetadataImpl;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Generic container class for data that is compound in nature<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * <a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Each subclass has an array of compound types, items of this array are composed of primitive types<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * <a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Data items can be Complex, Vector, etc<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * <a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public abstract class AbstractCompoundDataset extends AbstractDataset implements CompoundDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected int isize; // number of elements per item<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public int getElementsPerItem() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                return isize;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        @Override<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        protected int get1DIndex(final int i) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                int n = super.get1DIndex(i);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                return stride == null ? isize * n : n;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        protected int get1DIndex(final int i, final int j) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                int n = super.get1DIndex(i, j);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                return stride == null ? isize * n : n;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        @Override<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        protected int get1DIndexFromShape(final int[] n) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                return isize * super.get1DIndexFromShape(n);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public Dataset getUniqueItems() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                throw new UnsupportedOperationException("Cannot sort compound datasets");<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        public IndexIterator getIterator(final boolean withPosition) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                if (stride != null) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        return base.getSize() == 1 ? <a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                        (withPosition ? new PositionIterator(offset, shape) :  new SingleItemIterator(offset, size)) : new StrideIterator(isize, shape, stride, offset);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                return withPosition ? getSliceIterator(null, null, null) :<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        new ContiguousIterator(size, isize);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * Get an iterator that picks out the chosen element from all items<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @param element<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @return an iterator<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public IndexIterator getIterator(int element) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (element &lt; 0)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        element += isize;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        logger.error("Invalid choice of element: {}/{}", element, isize);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        throw new IllegalArgumentException("Invalid choice of element: " + element + "/" + isize);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                final IndexIterator it;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                if (stride != null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        it = base.getSize() == 1 ? new SingleItemIterator(offset + element, size) : new StrideIterator(isize, shape, stride, offset, element);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                } else {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        it = new ContiguousIterator(size, isize, element);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>                return it;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        @Override<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        public IndexIterator getSliceIterator(SliceND slice) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (ShapeUtils.calcLongSize(slice.getShape()) == 0) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        return new NullIterator(shape, slice.getShape());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                if (stride != null) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        return new StrideIterator(isize, shape, stride, offset, slice);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>                return new SliceIterator(shape, size, isize, slice);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * Constructor required for serialisation.<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        public AbstractCompoundDataset() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public boolean equals(Object obj) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                if (!super.equals(obj)) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        return false;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>                CompoundDataset other = (CompoundDataset) obj;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return isize == other.getElementsPerItem();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public int hashCode() {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                return getCompoundStats().getHash(shape);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>        @Override<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public CompoundDataset cast(boolean repeat, int dtype, int isize) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                return (CompoundDataset) super.cast(repeat, dtype, isize);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        @Override<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        public CompoundDataset cast(int dtype) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return (CompoundDataset) super.cast(dtype);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        abstract public AbstractCompoundDataset clone();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>        @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public CompoundDataset flatten() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                return (CompoundDataset) super.flatten();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public CompoundDataset getBy1DIndex(IntegerDataset index) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                return (CompoundDataset) super.getBy1DIndex(index);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        @Override<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public CompoundDataset getByBoolean(Dataset selection) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                return (CompoundDataset) super.getByBoolean(selection);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public CompoundDataset getByIndexes(Object... indexes) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                return (CompoundDataset) super.getByIndexes(indexes);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public CompoundDataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                return (CompoundDataset) super.getSlice(mon, start, stop, step);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        @Override<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public CompoundDataset getSlice(IMonitor mon, Slice... slice) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return (CompoundDataset) super.getSlice(mon, slice);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        @Override<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        public CompoundDataset getSlice(IMonitor mon, SliceND slice) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return (CompoundDataset) super.getSlice(mon, slice);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>        @Override<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        public CompoundDataset getSlice(int[] start, int[] stop, int[] step) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return (CompoundDataset) super.getSlice(start, stop, step);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        @Override<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        public CompoundDataset getSlice(Slice... slice) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return (CompoundDataset) super.getSlice(slice);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>        @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public CompoundDataset getSlice(SliceND slice) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                return (CompoundDataset) super.getSlice(slice);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        abstract public AbstractCompoundDataset getSlice(SliceIterator iterator);<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>        @Override<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public CompoundDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return (CompoundDataset) super.getSliceView(start, stop, step);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>        @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public CompoundDataset getSliceView(Slice... slice) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return (CompoundDataset) super.getSliceView(slice);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        public CompoundDataset getSliceView(SliceND slice) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                return (CompoundDataset) super.getSliceView(slice);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        public CompoundDataset getTransposedView(int... axes) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                return (CompoundDataset) super.getTransposedView(axes);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        abstract public AbstractCompoundDataset getView(boolean deepCopyMetadata);<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>        @Override<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        public CompoundDataset getBroadcastView(int... broadcastShape) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                return (CompoundDataset) super.getBroadcastView(broadcastShape);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        @Override<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        public CompoundDataset ifloorDivide(Object o) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                return (CompoundDataset) super.ifloorDivide(o);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        public CompoundDataset reshape(int... shape) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                return (CompoundDataset) super.reshape(shape);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>        @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        public CompoundDataset setSlice(Object obj, int[] start, int[] stop, int[] step) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                return (CompoundDataset) super.setSlice(obj, start, stop, step);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>        @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public CompoundDataset setSlice(Object object, Slice... slice) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                return (CompoundDataset) super.setSlice(object, slice);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>        @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public CompoundDataset sort(Integer axis) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                throw new UnsupportedOperationException("Cannot sort dataset");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        public CompoundDataset squeezeEnds() {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return (CompoundDataset) super.squeezeEnds();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>        @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        public CompoundDataset squeeze() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                return (CompoundDataset) super.squeeze();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>        @Override<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        public CompoundDataset squeeze(boolean onlyFromEnd) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                return (CompoundDataset) super.squeeze(onlyFromEnd);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>        @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public CompoundDataset swapAxes(int axis1, int axis2) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return (CompoundDataset) super.swapAxes(axis1, axis2);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>        @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        public synchronized CompoundDataset synchronizedCopy() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return clone();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>        @Override<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public CompoundDataset transpose(int... axes) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                return (CompoundDataset) super.transpose(axes);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>        /**<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * @since 2.0<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        abstract protected double getFirstValue();<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>        abstract protected double getFirstValue(final int i);<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        abstract protected double getFirstValue(final int i, final int j);<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>        abstract protected double getFirstValue(final int...pos);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>        @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public boolean getBoolean() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return getFirstValue() != 0;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        @Override<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        public boolean getBoolean(final int i) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                return getFirstValue(i) != 0;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>        @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public boolean getBoolean(final int i, final int j) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                return getFirstValue(i, j) != 0;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>        @Override<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        public boolean getBoolean(final int... pos) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                return getFirstValue(pos) != 0;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>        @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        public byte getByte() {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                return (byte) getFirstValue();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>        @Override<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public byte getByte(final int i) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                return (byte) getFirstValue(i);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>        @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        public byte getByte(final int i, final int j) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                return (byte) getFirstValue(i, j);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>        @Override<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        public byte getByte(final int... pos) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return (byte) getFirstValue(pos);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>        @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public short getShort() {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                return (short) getFirstValue();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>        @Override<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public short getShort(final int i) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return (short) getFirstValue(i);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public short getShort(final int i, final int j) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                return (short) getFirstValue(i, j);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public short getShort(final int... pos) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return (short) getFirstValue(pos);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>        @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        public int getInt() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                return (int) getFirstValue();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        @Override<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public int getInt(final int i) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return (int) getFirstValue(i);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        @Override<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        public int getInt(final int i, final int j) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                return (int) getFirstValue(i, j);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>        @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public int getInt(final int... pos) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return (int) getFirstValue(pos);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        @Override<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        public long getLong() {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                return (long) getFirstValue();<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>        @Override<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        public long getLong(final int i) {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                return (long) getFirstValue(i);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>        @Override<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        public long getLong(final int i, final int j) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                return (long) getFirstValue(i, j);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>        @Override<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        public long getLong(final int... pos) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                return (long) getFirstValue(pos);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>        @Override<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public float getFloat() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return (float) getFirstValue();<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        @Override<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        public float getFloat(final int i) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                return (float) getFirstValue(i);<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        }<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>        @Override<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        public float getFloat(final int i, final int j) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return (float) getFirstValue(i, j);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>        @Override<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public float getFloat(final int... pos) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return (float) getFirstValue(pos);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>        @Override<a name="line.409"></a>
+<span class="sourceLineNo">410</span>        public double getDouble() {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return getFirstValue();<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public double getDouble(final int i) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                return getFirstValue(i);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>        @Override<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        public double getDouble(final int i, final int j) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                return getFirstValue(i, j);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>        @Override<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        public double getDouble(final int... pos) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return getFirstValue(pos);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>        @Override<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        public void getDoubleArray(final double[] darray) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                getDoubleArrayAbs(getFirst1DIndex(), darray);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>        @Override<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        public void getDoubleArray(final double[] darray, final int i) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                getDoubleArrayAbs(get1DIndex(i), darray);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>        @Override<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public void getDoubleArray(final double[] darray, final int i, final int j) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                getDoubleArrayAbs(get1DIndex(i, j), darray);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        @Override<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        public void getDoubleArray(final double[] darray, final int... pos) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                getDoubleArrayAbs(get1DIndex(pos), darray);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>        /**<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @since 2.0<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        @SuppressWarnings("unchecked")<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        protected StatisticsMetadata&lt;double[]&gt; getCompoundStats() {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                StatisticsMetadata&lt;double[]&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                if (md == null || md.isDirty()) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                        md = new StatisticsMetadataImpl&lt;double[]&gt;();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                        md.initialize(this);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        setMetadata(md);<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return md;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public IntegerDataset argMax(int axis, boolean... ignoreInvalids) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                logger.error("Cannot compare compound numbers");<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>        @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public IntegerDataset argMin(int axis, boolean... ignoreInvalids) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                logger.error("Cannot compare compound numbers");<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>        @Override<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public Number max(boolean... ignoreInvalids) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                logger.error("Cannot compare compound numbers");<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public CompoundDataset max(int axis, boolean... ignoreInvalids) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                logger.error("Cannot compare compound numbers");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        @Override<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        public Number min(boolean... ignoreInvalids) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                logger.error("Cannot compare compound numbers");<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>        @Override<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public CompoundDataset min(int axis, boolean... ignoreInvalids) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                logger.error("Cannot compare compound numbers");<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>        @Override<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        public int[] maxPos(boolean... ignoreNaNs) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                logger.error("Cannot compare compound numbers");<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public int[] minPos(boolean... ignoreNaNs) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                logger.error("Cannot compare compound numbers");<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public CompoundDataset peakToPeak(int axis, boolean... ignoreInvalids) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                logger.error("Cannot compare compound numbers");<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                throw new UnsupportedOperationException("Cannot compare compound numbers");<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        }<a name="line.516"></a>
+<span class="sourceLineNo">517</span><a name="line.517"></a>
+<span class="sourceLineNo">518</span>        @Override<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        public double[] maxItem() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                return getCompoundStats().getMaximum();<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        public double[] minItem() {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                return getCompoundStats().getMinimum();<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>        @Override<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        public Object mean(boolean... ignoreInvalids) {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                return getCompoundStats().getMean();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>        @Override<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        public CompoundDataset mean(int axis, boolean... ignoreInvalids) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                return (CompoundDataset) super.mean(axis, ignoreInvalids);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>        }<a name="line.536"></a>
+<span class="sourceLineNo">537</span><a name="line.537"></a>
+<span class="sourceLineNo">538</span>        @Override<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        public CompoundDataset product(int axis, boolean... ignoreInvalids) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                return (CompoundDataset) super.product(axis, ignoreInvalids);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        }<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>        @Override<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public CompoundDataset rootMeanSquare(int axis, boolean... ignoreInvalids) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                return (CompoundDataset) super.rootMeanSquare(axis, ignoreInvalids);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>        @Override<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        public CompoundDataset stdDeviation(int axis) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                return (CompoundDataset) super.stdDeviation(axis, false);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>        }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>        @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        public CompoundDataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                return (CompoundDataset) super.stdDeviation(axis, isWholePopulation, ignoreInvalids);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>        @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        public Object sum(boolean... ignoreInvalids) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                return getCompoundStats().getSum();<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>        @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        public CompoundDataset sum(int axis, boolean... ignoreInvalids) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                return (CompoundDataset) super.sum(axis, ignoreInvalids);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>        }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>        @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                return getCompoundStats().getVariance(isWholePopulation, ignoreInvalids);<a name="line.570"></a>
+<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>        @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        public CompoundDataset variance(int axis) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                return (CompoundDataset) super.variance(axis, false);<a name="line.575"></a>
+<span class="sourceLineNo">576</span>        }<a name="line.576"></a>
+<span class="sourceLineNo">577</span><a name="line.577"></a>
+<span class="sourceLineNo">578</span>        @Override<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        public CompoundDataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                return (CompoundDataset) super.variance(axis, isWholePopulation, ignoreInvalids);<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>        @Override<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        public double rootMeanSquare(boolean... ignoreInvalids) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                StatisticsMetadata&lt;double[]&gt; stats = getCompoundStats();<a name="line.585"></a>
+<span class="sourceLineNo">586</span><a name="line.586"></a>
+<span class="sourceLineNo">587</span>                double[] mean = stats.getMean(ignoreInvalids);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                double result = 0;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        double m = mean[i];<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        result += m * m;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                return Math.sqrt(result + stats.getVariance(true));<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        /**<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * @return error<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        private CompoundDataset getInternalError() {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                ILazyDataset led = super.getErrors();<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                if (led == null)<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        return null;<a name="line.602"></a>
+<span class="sourceLineNo">603</span><a name="line.603"></a>
+<span class="sourceLineNo">604</span>                Dataset ed = null;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                try {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                } catch (DatasetException e) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        logger.error("Could not get data from lazy dataset", e);<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                }<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>                CompoundDataset ced; // ensure it has the same number of elements<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                if (!(ed instanceof CompoundDataset) || ed.getElementsPerItem() != isize) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        ced = new CompoundDoubleDataset(isize, true, ed);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                } else {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        ced = (CompoundDataset) ed;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                <a name="line.617"></a>
+<span class="sourceLineNo">618</span>                if (led != ced) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                        setErrors(ced); // set back<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                return ced;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        }<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>        @Override<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        public CompoundDataset getErrors() {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                CompoundDataset ed = getInternalError();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                if (ed == null)<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        return null;<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>                return ed.getBroadcastView(shape);<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>        @Override<a name="line.633"></a>
+<span class="sourceLineNo">634</span>        public double getError(final int i) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                return calcError(getInternalErrorArray(true, i));<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>        @Override<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public double getError(final int i, final int j) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                return calcError(getInternalErrorArray(true, i, j));<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        }<a name="line.641"></a>
+<span class="sourceLineNo">642</span><a name="line.642"></a>
+<span class="sourceLineNo">643</span>        @Override<a name="line.643"></a>
+<span class="sourceLineNo">644</span>        public double getError(final int... pos) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                return calcError(getInternalErrorArray(true, pos));<a name="line.645"></a>
+<span class="sourceLineNo">646</span>        }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>        private double calcError(double[] es) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                if (es == null)<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        return 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>                // assume elements are independent<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                double e = 0;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        e += es[k];<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                return Math.sqrt(e);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        }<a name="line.659"></a>
+<span class="sourceLineNo">660</span><a name="line.660"></a>
+<span class="sourceLineNo">661</span>        @Override<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        public double[] getErrorArray(final int i) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return getInternalErrorArray(false, i);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>        @Override<a name="line.666"></a>
+<span class="sourceLineNo">667</span>        public double[] getErrorArray(final int i, final int j) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                return getInternalErrorArray(false, i, j);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
+<span class="sourceLineNo">672</span>        public double[] getErrorArray(final int... pos) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                return getInternalErrorArray(false, pos);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        }<a name="line.674"></a>
+<span class="sourceLineNo">675</span><a name="line.675"></a>
+<span class="sourceLineNo">676</span>        private Dataset getInternalError(final boolean squared) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                Dataset sed = squared ? getInternalSquaredError() : getInternalError();<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                if (sed == null)<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        return null;<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>                return sed.getBroadcastView(shape);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span><a name="line.683"></a>
+<span class="sourceLineNo">684</span>        private double[] getInternalErrorArray(final boolean squared, final int i) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                Dataset sed = getInternalError(squared);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                if (sed == null)<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        return null;<a name="line.687"></a>
+<span class="sourceLineNo">688</span><a name="line.688"></a>
+<span class="sourceLineNo">689</span>                double[] es;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(i);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                Arrays.fill(es, es[0]);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                } else {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        es = new double[isize];<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(i));<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return es;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        private double[] getInternalErrorArray(final boolean squared, final int i, final int j) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                Dataset sed = getInternalError(squared);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                if (sed == null)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return null;<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                double[] es;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(i, j);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                Arrays.fill(es, es[0]);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                        }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                } else {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        es = new double[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(i, j));<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                return es;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>        }<a name="line.718"></a>
+<span class="sourceLineNo">719</span><a name="line.719"></a>
+<span class="sourceLineNo">720</span>        private double[] getInternalErrorArray(final boolean squared, final int... pos) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                Dataset sed = getInternalError(squared);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                if (sed == null)<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        return null;<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>                double[] es = new double[isize];<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (sed instanceof CompoundDoubleDataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        es = ((CompoundDoubleDataset) sed).getDoubleArray(pos);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        if (sed.getElementsPerItem() != isize) { // ensure error is broadcasted<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                Arrays.fill(es, es[0]);<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                } else {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        es = new double[isize];<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        Arrays.fill(es, ((DoubleDataset) sed).getDouble(pos));<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                }<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                return es;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>        }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>}<a name="line.737"></a>
+<span class="sourceLineNo">738</span><a name="line.738"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AbstractDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AbstractDataset.html
new file mode 100644
index 0000000..39c74ee
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AbstractDataset.html
@@ -0,0 +1,1960 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.reflect.Array;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.text.Format;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.ArrayList;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.Arrays;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.List;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.ConcurrentMap;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.DatasetException;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.eclipse.january.IMonitor;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.MetadataException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.metadata.ErrorMetadata;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.metadata.MetadataFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.eclipse.january.metadata.MetadataType;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.eclipse.january.metadata.internal.ErrorMetadataImpl;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.eclipse.january.metadata.internal.StatisticsMetadataImpl;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Generic container class for data <a name="line.35"></a>
+<span class="sourceLineNo">036</span> * &lt;p/&gt;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * Each subclass has an array of primitive types, elements of this array are grouped or<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * compounded to make items <a name="line.38"></a>
+<span class="sourceLineNo">039</span> * &lt;p/&gt;<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * Data items can be boolean, integer, float, complex float, vector float, etc<a name="line.40"></a>
+<span class="sourceLineNo">041</span> */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>public abstract class AbstractDataset extends LazyDatasetBase implements Dataset {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        // pin UID to base class<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        protected int size; // number of items<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        transient protected AbstractDataset base; // is null when not a view<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        protected int[] stride; // can be null for row-major, contiguous datasets<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        protected int offset;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * The data itself, held in a 1D array, but the object will wrap it to appear as possessing as many dimensions as<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * wanted<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        protected Serializable odata = null;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        /**<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * Set aliased data as base data<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        abstract protected void setData();<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        /**<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * Constructor required for serialisation.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public AbstractDataset() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        @Override<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        public synchronized Dataset synchronizedCopy() {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                return clone();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>        @Override<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        public boolean equals(Object obj) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                if (this == obj) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        return true;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (obj == null) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        return false;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                if (!getClass().equals(obj.getClass())) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (getRank() == 0) // for zero-rank datasets<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                return obj.equals(getObjectAbs(offset));<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return false;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>                Dataset other = (Dataset) obj;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                if (getElementsPerItem() != other.getElementsPerItem())<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        return false;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (size != other.getSize())<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return false;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (!Arrays.equals(shape, other.getShapeRef())) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return false;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>                return true;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>        @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public int hashCode() {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                return getStats().getHash(shape);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>        @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        abstract public AbstractDataset clone();<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        protected Format stringFormat = null;<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>        @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        public void setStringFormat(Format format) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                stringFormat = format;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        public Dataset copy(final int dtype) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                if (getDType() == dtype) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        return clone();<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                return DatasetUtils.copy(this, dtype);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>        @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                return DatasetUtils.copy(clazz, this);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>        @Override<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public Dataset cast(final int dtype) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                if (getDType() == dtype) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        return this;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                return DatasetUtils.cast(this, dtype);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        @Override<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        public &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                return DatasetUtils.cast(clazz, this);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>        @Override<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        public Dataset cast(final boolean repeat, final int dtype, final int isize) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                if (getDType() == dtype &amp;&amp; getElementsPerItem() == isize) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        return this;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                return DatasetUtils.cast(this, repeat, dtype, isize);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        @Override<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        abstract public AbstractDataset getView(boolean deepCopyMetadata);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        /**<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * Copy fields from original to view<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @param orig<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @param view<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @param clone if true, then clone everything but bulk data<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @param cloneMetadata if true, clone metadata<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        protected static void copyToView(Dataset orig, AbstractDataset view, boolean clone, boolean cloneMetadata) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                view.name = orig.getName();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                view.size = orig.getSize();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                view.odata = orig.getBuffer();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                view.offset = orig.getOffset();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                view.base = orig instanceof AbstractDataset ? ((AbstractDataset) orig).base : null;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                if (clone) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        view.shape = orig.getShape();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        view.stride = orig instanceof AbstractDataset &amp;&amp; ((AbstractDataset) orig).stride != null ?<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                        ((AbstractDataset) orig).stride.clone() : null;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                } else {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        view.shape = orig.getShapeRef();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        view.stride = orig instanceof AbstractDataset ? ((AbstractDataset) orig).stride : null;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                view.metadata = getMetadataMap(orig, cloneMetadata);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                int odtype = orig.getDType();<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                int vdtype = view.getDType();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                if (odtype != vdtype) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        view.setDirty();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @since 2.0<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        protected static ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; getMetadataMap(Dataset a, boolean clone) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                if (a == null)<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        return null;<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>                List&lt;MetadataType&gt; all = null;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                try {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        all = a.getMetadata(null);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                } catch (Exception e) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                if (all == null)<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        return null;<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; map = new ConcurrentHashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                for (MetadataType m : all) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        if (m == null) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                continue;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        Class&lt;? extends MetadataType&gt; c = findMetadataTypeSubInterfaces(m.getClass());<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        List&lt;MetadataType&gt; l = map.get(c);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        if (l == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                l = new ArrayList&lt;MetadataType&gt;();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                map.put(c, l);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        if (clone)<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                m = m.clone();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        l.add(m);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return map;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>        @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        public IntegerDataset getIndices() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                final IntegerDataset ret = DatasetUtils.indices(shape);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                if (getName() != null) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        ret.setName("Indices of " + getName());<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return ret;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public Dataset getTransposedView(int... axes) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                axes = checkPermutatedAxes(shape, axes);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>                AbstractDataset t = getView(true);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                if (axes == null || getRank() == 1)<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        return t;<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int rank = shape.length;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                int[] tstride = new int[rank];<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                int[] toffset = new int[1];<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                int[] nshape = createStrides(new SliceND(shape), this, tstride, toffset);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                int[] nstride = new int[rank];<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        final int ax = axes[i];<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        nstride[i] = tstride[ax];<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        nshape[i] = shape[ax];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                t.shape = nshape;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                t.stride = nstride;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                t.offset = toffset[0];<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                t.base = this;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                t.setDirty();<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                t.transposeMetadata(axes);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return t;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>        @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        public Dataset transpose(int... axes) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                Dataset t = getTransposedView(axes);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return t == null ? clone() : t.clone();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        @Override<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        public Dataset swapAxes(int axis1, int axis2) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                int rank = shape.length;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                axis1 = ShapeUtils.checkAxis(rank, axis1);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                axis2 = ShapeUtils.checkAxis(rank, axis2);<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>                if (rank == 1 || axis1 == axis2) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        return this;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>                int[] axes = new int[rank];<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        axes[i] = i;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                }               <a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>                axes[axis1] = axis2;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                axes[axis2] = axis1;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return getTransposedView(axes);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        private boolean isContiguous() {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                if (stride == null)<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        return true;<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                if (offset != 0)<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        return false;<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>                int s = getElementsPerItem();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                for (int j = getRank() - 1; j &gt;= 0; j--) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                        if (stride[j] != s) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                return false;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        s *= shape[j];<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return true;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public Dataset flatten() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                if (!isContiguous()) { // need to make a copy if not contiguous<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        return clone().flatten();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                return reshape(size);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>        /**<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * Fill dataset from object at depth dimension<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @param obj<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param depth<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @param pos position<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        protected void fillData(Object obj, final int depth, final int[] pos) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                if (obj == null) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        int dtype = getDType();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                        if (dtype == FLOAT32)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                set(Float.NaN, pos);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        else if (dtype == FLOAT64)<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                set(Double.NaN, pos);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        return;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>                Class&lt;?&gt; clazz = obj.getClass();<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                if (obj instanceof List&lt;?&gt;) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        int l = jl.size();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                Object lo = jl.get(i);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                fillData(lo, depth + 1, pos);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                pos[depth]++;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        pos[depth] = 0;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                } else if (clazz.isArray()) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                        int l = Array.getLength(obj);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        if (clazz.equals(odata.getClass())) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                System.arraycopy(obj, 0, odata, get1DIndex(pos), l);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        } else if (clazz.getComponentType().isPrimitive()) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                for (int i = 0; i &lt; l; i++) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                        set(Array.get(obj, i), pos);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                        pos[depth]++;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                                }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                                pos[depth] = 0;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        } else {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                for (int i = 0; i &lt; l; i++) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                        fillData(Array.get(obj, i), depth + 1, pos);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                        pos[depth]++;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                pos[depth] = 0;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                } else if (obj instanceof IDataset) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        boolean[] a = new boolean[shape.length];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        for (int i = depth; i &lt; a.length; i++)<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                a[i] = true;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        setSlice(obj, getSliceIteratorFromAxes(pos, a));<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                } else {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        set(obj, pos);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>        @Override<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        public IndexIterator getIterator(final boolean withPosition) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                if (stride != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        return base.getSize() == 1  ? (withPosition ? new PositionIterator(offset, shape) :<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                                new SingleItemIterator(offset, size)) : new StrideIterator(shape, stride, offset);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                if (shape == null) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                        return new NullIterator(shape, shape);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                <a name="line.367"></a>
+<span class="sourceLineNo">368</span>                return withPosition ? new ContiguousIteratorWithPosition(shape, size) : new ContiguousIterator(size);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>        @Override<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        public IndexIterator getIterator() {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                return getIterator(false);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>        @Override<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        public PositionIterator getPositionIterator(final int... axes) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                return new PositionIterator(shape, axes);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>        @Override<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public IndexIterator getSliceIterator(final int[] start, final int[] stop, final int[] step) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return getSliceIterator(new SliceND(shape, start, stop, step));<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        /**<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @param slice<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public IndexIterator getSliceIterator(SliceND slice) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                if (ShapeUtils.calcLongSize(slice.getShape()) == 0) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                        return new NullIterator(shape, slice.getShape());<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                }<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                if (stride != null) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        return new StrideIterator(getElementsPerItem(), shape, stride, offset, slice);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return new SliceIterator(shape, size, slice);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>        @Override<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public SliceIterator getSliceIteratorFromAxes(final int[] pos, boolean[] axes) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                int rank = shape.length;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                int[] start;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                int[] stop = new int[rank];<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                int[] step = new int[rank];<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>                if (pos == null) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        start = new int[rank];<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                } else if (pos.length == rank) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        start = pos.clone();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                } else {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        throw new IllegalArgumentException("pos array length is not equal to rank of dataset");<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                }<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                if (axes == null) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        axes = new boolean[rank];<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        Arrays.fill(axes, true);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                } else if (axes.length != rank) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        throw new IllegalArgumentException("axes array length is not equal to rank of dataset");<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                        if (axes[i]) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                stop[i] = shape[i];<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        } else {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                stop[i] = start[i] + 1;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                        step[i] = 1;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                return (SliceIterator) getSliceIterator(start, stop, step);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        @Override<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public BooleanIterator getBooleanIterator(Dataset choice) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return getBooleanIterator(choice, true);<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        @Override<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        public BooleanIterator getBooleanIterator(Dataset choice, boolean value) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                return BooleanIterator.createIterator(value, this, choice, this);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>        @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public Dataset getByBoolean(Dataset selection) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                checkCompatibility(selection);<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                final int length = ((Number) selection.sum()).intValue();<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                final int is = getElementsPerItem();<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                Dataset r = DatasetFactory.zeros(is, getClass(), length);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                BooleanIterator biter = getBooleanIterator(selection);<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                int i = 0;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                while (biter.hasNext()) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        r.setObjectAbs(i, getObjectAbs(biter.index));<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        i += is;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                return r;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>        @Override<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        public Dataset getBy1DIndex(IntegerDataset index) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                final int is = getElementsPerItem();<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                final Dataset r = DatasetFactory.zeros(is, getClass(), index.getShape());<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                final IntegerIterator iter = new IntegerIterator(index, size, is);<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>                int i = 0;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                while (iter.hasNext()) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                        r.setObjectAbs(i, getObjectAbs(iter.index));<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        i += is;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return r;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        public Dataset getByIndexes(final Object... indexes) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                final int is = getElementsPerItem();<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                final Dataset r = DatasetFactory.zeros(is, getClass(), iter.getShape());<a name="line.477"></a>
+<span class="sourceLineNo">478</span><a name="line.478"></a>
+<span class="sourceLineNo">479</span>                final int[] pos = iter.getPos();<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                int i = 0;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                while (iter.hasNext()) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        r.setObjectAbs(i, getObject(pos));<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        i += is;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                return r;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>        @Override<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        public Class&lt;?&gt; getElementClass() {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                return DTypeUtils.getElementClass(getDType());<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>        @Override<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public boolean hasFloatingPointElements() {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                Class&lt;?&gt; cls = getElementClass();<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return cls == Float.class || cls == Double.class;<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>        @Override<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        public int getElementsPerItem() {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return DTypeUtils.getElementsPerItem(getDType());<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>        @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        public int getItemBytes() {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                return DTypeUtils.getItemBytes(getDType(), getElementsPerItem());<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>        @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        public String getName() {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                return name;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>        @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        public void setName(final String name) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                this.name = name;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>        @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        public int getSize() {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return size;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>        @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public int[] getShape() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                // make a copy of the dimensions data, and put that out<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                if (shape == null) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        logger.warn("Shape is null!!!");<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        return new int[] {};<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                return shape.clone();<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        }<a name="line.532"></a>
+<span class="sourceLineNo">533</span><a name="line.533"></a>
+<span class="sourceLineNo">534</span>        @Override<a name="line.534"></a>
+<span class="sourceLineNo">535</span>        public int getRank() {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                return shape == null ? 0 : shape.length;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>        @Override<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        public int getNbytes() {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                return getSize() * getItemBytes();<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>        /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         * Check for -1 placeholder in shape and replace if necessary<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         * @param shape<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @param size<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        private void checkShape(int[] shape, int size) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                int rank = shape.length;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                int found = -1;<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                int nsize = 1;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        int d = shape[i];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        if (d == -1) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                if (found == -1) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                        found = i;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                } else {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                        logger.error("Can only have one -1 placeholder in shape");<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                        throw new IllegalArgumentException("Can only have one -1 placeholder in shape");<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                        } else {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                nsize *= d;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                if (found &gt;= 0) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        shape[found] = size/nsize;<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                } else if (nsize != size &amp;&amp; !(rank == 0 &amp;&amp; size == 0)) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        logger.error("New shape is not same size as old shape");<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("New size is not same as the old size. Old size is "+size+" new size is "+nsize+" and shape is "+Arrays.toString(shape));<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        }<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>        @Override<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public void setShape(final int... shape) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                int[] nshape = shape.clone();<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                checkShape(nshape, size);<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                if (Arrays.equals(this.shape, nshape)) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        return;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>                if (stride != null) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                        // the only compatible shapes are ones where new dimensions are factors of old dimensions<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        // or are combined adjacent old dimensions <a name="line.584"></a>
+<span class="sourceLineNo">585</span>                        int[] oshape = this.shape;<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        int orank = oshape.length;<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        int nrank = nshape.length;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        int diff = nrank - orank;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        int[] nstride = new int[nrank];<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        boolean ones = true;<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        // work forwards for broadcasting cases<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        for (int i = 0, j = 0; i &lt; orank || j &lt; nrank;) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                if (j &gt;= diff &amp;&amp; i &lt; orank &amp;&amp; j &lt; nrank &amp;&amp; oshape[i] == nshape[j]) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        nstride[j++] = stride[i++];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                } else if (j &lt; nrank &amp;&amp; nshape[j] == 1) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        nstride[j++] = 0;<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                } else if (i &lt; orank &amp;&amp; oshape[i] == 1) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        i++;<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                } else {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                        if (j &lt; nrank)<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                                j++;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        if (i &lt; orank)<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                                i++;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        ones = false;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                }<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        if (!ones) { // not just ones differ in shapes<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                int[] ostride = stride;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                int ob = 0;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                int oe = 1;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                int nb = 0;<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                int ne = 1;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                                while (ob &lt; orank &amp;&amp; nb &lt; nrank) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                        int ol = oshape[ob];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                        int nl = nshape[nb];<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                        <a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                        if (nl &lt; ol) { // find group of shape dimensions that form common size<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                                do { // case where new shape spreads single dimension over several dimensions<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                                        if (ne == nrank) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                                                break;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                                        }<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                                        nl *= nshape[ne++];<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                                } while (nl &lt; ol);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                                if (nl != ol) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                                        logger.error("Subshape is incompatible with single dimension");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                                        throw new IllegalArgumentException("Subshape is incompatible with single dimension");<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                                }<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                                int on = ne - 1;<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                                while (nshape[on] == 1) {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                                        on--;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                                nstride[on] = ostride[ob];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                                for (int n = on - 1; n &gt;= nb; n--) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                                        if (nshape[n] == 1)<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                                                continue;<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                                        nstride[n] = nshape[on] * nstride[on];<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                                        on = n;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                                }<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                        } else if (ol &lt; nl) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                                do { // case where new shape combines several dimensions into one dimension<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                                        if (oe == orank) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                                                break;<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                                        }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                                        ol *= oshape[oe++];<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                                } while (ol &lt; nl);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                                if (nl != ol) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                                        logger.error("Single dimension is incompatible with subshape");<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                                        throw new IllegalArgumentException("Single dimension is incompatible with subshape");<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                int oo = oe - 1;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                                while (oshape[oo] == 1) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                        oo--;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                int os = ostride[oo];<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                                for (int o = oo - 1; o &gt;= ob; o--) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                                        if (oshape[o] == 1)<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                                                continue;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                                        if (ostride[o] != oshape[oo] * ostride[oo]) {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                                logger.error("Subshape cannot be a non-contiguous view");<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                                throw new IllegalArgumentException("Subshape cannot be a non-contiguous view");<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                        oo = o;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                                nstride[nb] = os;<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        } else {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                                nstride[nb] = ostride[ob];<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        ob = oe++;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                        nb = ne++;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        <a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        stride = nstride;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span><a name="line.679"></a>
+<span class="sourceLineNo">680</span>                setDirty();<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                if (this.shape != null) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        reshapeMetadata(this.shape, nshape);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                }<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                this.shape = nshape;<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        }<a name="line.685"></a>
+<span class="sourceLineNo">686</span><a name="line.686"></a>
+<span class="sourceLineNo">687</span>        @Override<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        public int[] getShapeRef() {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return shape;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public int getOffset() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                return offset;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>        @Override<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        public int[] getStrides() {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return stride;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public Serializable getBuffer() {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                return odata;<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        }<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>        @Override<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        public void overrideInternal(Serializable buffer, int... shape) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                if (buffer != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        odata = buffer;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        setData();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                        setDirty();<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        <a name="line.714"></a>
+<span class="sourceLineNo">715</span>                if (shape != null) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        this.shape = shape.clone();<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        size = ShapeUtils.calcSize(this.shape);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>        }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>        /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>         * Create a stride array from dataset<a name="line.722"></a>
+<span class="sourceLineNo">723</span>         * @param a dataset<a name="line.723"></a>
+<span class="sourceLineNo">724</span>         * @param offset output offset<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         * @return new strides<a name="line.725"></a>
+<span class="sourceLineNo">726</span>         */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public static int[] createStrides(Dataset a, final int[] offset) {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                return createStrides(a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), a.getOffset(), offset);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>        }<a name="line.729"></a>
+<span class="sourceLineNo">730</span><a name="line.730"></a>
+<span class="sourceLineNo">731</span>        /**<a name="line.731"></a>
+<span class="sourceLineNo">732</span>         * Create a stride array from dataset<a name="line.732"></a>
+<span class="sourceLineNo">733</span>         * @param isize<a name="line.733"></a>
+<span class="sourceLineNo">734</span>         * @param shape<a name="line.734"></a>
+<span class="sourceLineNo">735</span>         * @param oStride original stride<a name="line.735"></a>
+<span class="sourceLineNo">736</span>         * @param oOffset original offset (only used if there is an original stride)<a name="line.736"></a>
+<span class="sourceLineNo">737</span>         * @param offset output offset<a name="line.737"></a>
+<span class="sourceLineNo">738</span>         * @return new strides<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         */<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        public static int[] createStrides(final int isize, final int[] shape, final int[] oStride, final int oOffset, final int[] offset) {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                int rank = shape.length;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                final int[] stride;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                if (oStride == null) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        offset[0] = 0;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        stride = new int[rank];<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        int s = isize;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                stride[j] = s;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                s *= shape[j];<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                } else {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        offset[0] = oOffset;<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        stride = oStride.clone();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                return stride;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        }<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>        /**<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * Create a stride array from slice information and a dataset<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * @param slice<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @param a dataset<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * @param stride output stride<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         * @param offset output offset<a name="line.763"></a>
+<span class="sourceLineNo">764</span>         * @return new shape<a name="line.764"></a>
+<span class="sourceLineNo">765</span>         */<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        public static int[] createStrides(final SliceND slice, final Dataset a, final int[] stride, final int[] offset) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                return createStrides(slice, a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), a.getOffset(), stride, offset);<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        }<a name="line.768"></a>
+<span class="sourceLineNo">769</span><a name="line.769"></a>
+<span class="sourceLineNo">770</span>        /**<a name="line.770"></a>
+<span class="sourceLineNo">771</span>         * Create a stride array from slice and dataset information<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         * @param slice<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @param isize<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * @param shape<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @param oStride original stride<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @param oOffset original offset (only used if there is an original stride)<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * @param stride output stride<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         * @param offset output offset<a name="line.778"></a>
+<span class="sourceLineNo">779</span>         * @return new shape<a name="line.779"></a>
+<span class="sourceLineNo">780</span>         */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>        public static int[] createStrides(final SliceND slice, final int isize, final int[] shape, final int[] oStride, final int oOffset, final int[] stride, final int[] offset) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                int[] lstart = slice.getStart();<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                int[] lstep = slice.getStep();<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                int[] newShape = slice.getShape();<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                int rank = shape.length;<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                if (oStride == null) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        int s = isize;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        offset[0] = 0;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                stride[j] = s * lstep[j];<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                offset[0] += s * lstart[j];<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                s *= shape[j];<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                } else {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        offset[0] = oOffset;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        for (int j = 0; j &lt; rank; j++) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                int s = oStride[j];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                stride[j] = lstep[j] * s;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                offset[0] += lstart[j] * s;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>                return newShape;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        }<a name="line.805"></a>
+<span class="sourceLineNo">806</span><a name="line.806"></a>
+<span class="sourceLineNo">807</span>        @Override<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public Dataset getBroadcastView(int... broadcastShape) {<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                AbstractDataset view = getView(true);<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                <a name="line.810"></a>
+<span class="sourceLineNo">811</span>                if (!Arrays.equals(shape, broadcastShape)) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        List&lt;int[]&gt; nShapes = BroadcastUtils.broadcastShapesToMax(broadcastShape, shape);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        view.setShape(nShapes.get(0));<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                        view.stride = BroadcastUtils.createBroadcastStrides(view, broadcastShape);<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        view.base = this;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        view.shape = broadcastShape.clone();<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        view.size = ShapeUtils.calcSize(broadcastShape);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        if (view.name == null || view.name.isEmpty()) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                view.name = "Broadcast from " + Arrays.toString(shape);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        } else {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                view.name = "Broadcast of " + view.name + " from " + Arrays.toString(shape);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                }<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                return view;<a name="line.824"></a>
+<span class="sourceLineNo">825</span>        }<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>        @Override<a name="line.827"></a>
+<span class="sourceLineNo">828</span>        public Dataset getSliceView(final int[] start, final int[] stop, final int[] step) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                return getSliceView(new SliceND(shape, start, stop, step));<a name="line.829"></a>
+<span class="sourceLineNo">830</span>        }<a name="line.830"></a>
+<span class="sourceLineNo">831</span><a name="line.831"></a>
+<span class="sourceLineNo">832</span>        @Override<a name="line.832"></a>
+<span class="sourceLineNo">833</span>        public Dataset getSliceView(Slice... slice) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                if (slice == null || slice.length == 0) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        return getView(true);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                }<a name="line.836"></a>
+<span class="sourceLineNo">837</span><a name="line.837"></a>
+<span class="sourceLineNo">838</span>                return getSliceView(new SliceND(shape, slice));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>        }<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>        /**<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * Get a slice of the dataset. The returned dataset is a view on a selection of items<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         * @param slice<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         * @return slice view<a name="line.844"></a>
+<span class="sourceLineNo">845</span>         */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        @Override<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        public Dataset getSliceView(SliceND slice) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                if (slice.isAll()) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        return getView(true);<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                }<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>                final int rank = shape.length;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                int[] sStride = new int[rank];<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                int[] sOffset = new int[1];<a name="line.854"></a>
+<span class="sourceLineNo">855</span><a name="line.855"></a>
+<span class="sourceLineNo">856</span>                int[] sShape = createStrides(slice, this, sStride, sOffset);<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        <a name="line.857"></a>
+<span class="sourceLineNo">858</span>                AbstractDataset s = getView(false);<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                s.shape = sShape;<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                s.size = ShapeUtils.calcSize(sShape);<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                s.stride = sStride;<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                s.offset = sOffset[0];<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                s.base = this;<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                s.metadata = copyMetadata();<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                s.sliceMetadata(true, slice);<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>                s.setDirty();<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                s.setName(name + BLOCK_OPEN + slice + BLOCK_CLOSE);<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>                return s;<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>        /**<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * Get flattened view index of given position <a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param pos<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         *            the integer array specifying the n-D position<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         * @return the index on the flattened dataset<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         */<a name="line.879"></a>
+<span class="sourceLineNo">880</span>        private int getFlat1DIndex(final int[] pos) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                final int imax = pos.length;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (imax == 0) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        return 0;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>                return get1DIndexFromShape(pos);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>        }<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>        /**<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @since 2.0<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        protected int getFirst1DIndex() {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (shape == null) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                return stride == null ? 0 : offset;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        @Override<a name="line.899"></a>
+<span class="sourceLineNo">900</span>        public int get1DIndex(final int... n) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                if (n.length == 0 &amp;&amp; shape.length == 0)<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        return offset;<a name="line.902"></a>
+<span class="sourceLineNo">903</span><a name="line.903"></a>
+<span class="sourceLineNo">904</span>                return stride == null ? get1DIndexFromShape(n) : get1DIndexFromStrides(n);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>        private static void throwAIOOBException(int i, int s, int d) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                throw new ArrayIndexOutOfBoundsException("Index (" + i + ") out of range [-" + s + "," + s<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                + "] in dimension " + d);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span><a name="line.911"></a>
+<span class="sourceLineNo">912</span>        /**<a name="line.912"></a>
+<span class="sourceLineNo">913</span>         * @param i<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * @return the index on the data array corresponding to that location<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         */<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        protected int get1DIndex(int i) {<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                if (shape == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (shape.length &gt; 1) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        logger.error("This dataset is not 1D but was addressed as such");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        throw new UnsupportedOperationException("This dataset is not 1D but was addressed as such");<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                }<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (i &lt; 0) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        i += shape[0];<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                if (i &lt; 0 || i &gt;= shape[0]) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        throwAIOOBException(i, shape[0], 0);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                return stride == null ? i : i*stride[0] + offset;<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span><a name="line.932"></a>
+<span class="sourceLineNo">933</span>        /**<a name="line.933"></a>
+<span class="sourceLineNo">934</span>         * @param i<a name="line.934"></a>
+<span class="sourceLineNo">935</span>         * @param j<a name="line.935"></a>
+<span class="sourceLineNo">936</span>         * @return the index on the data array corresponding to that location<a name="line.936"></a>
+<span class="sourceLineNo">937</span>         */<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        protected int get1DIndex(int i, int j) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                if (shape == null) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                }<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                if (shape.length != 2) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                        logger.error("This dataset is not 2D but was addressed as such");<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        throw new UnsupportedOperationException("This dataset is not 2D but was addressed as such");<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                if (i &lt; 0) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        i += shape[0];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                if (i &lt; 0 || i &gt;= shape[0]) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        throwAIOOBException(i, shape[0], 0);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                if (j &lt; 0) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        j += shape[1];<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                if (j &lt; 0 || j &gt;= shape[1]) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        throwAIOOBException(i, shape[1], 1);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                return stride == null ? i*shape[1] + j : i*stride[0] + j*stride[1] + offset;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        }<a name="line.959"></a>
+<span class="sourceLineNo">960</span><a name="line.960"></a>
+<span class="sourceLineNo">961</span>        protected int get1DIndexFromShape(final int[] n) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                return get1DIndexFromShape(shape, n);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>        protected static int get1DIndexFromShape(final int[] shape, final int[] n) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                if (shape == null) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                final int rank = shape.length;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                if (rank != n.length) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        String errMsg = String.format("Number of position values must be equal to rank of %d", rank);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        logger.error(errMsg);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        throw new IllegalArgumentException(errMsg);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                int index = 0;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        final int si = shape[i];<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        int ni = n[i];<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        if (ni &lt; 0) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                ni += si;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                        }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        if (ni &lt; 0 || ni &gt;= si) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                throwAIOOBException(ni, si, i);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        }<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                        index = index * si + ni;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span><a name="line.987"></a>
+<span class="sourceLineNo">988</span>                return index;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>        }<a name="line.989"></a>
+<span class="sourceLineNo">990</span><a name="line.990"></a>
+<span class="sourceLineNo">991</span>        private int get1DIndexFromStrides(final int[] n) {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                return get1DIndexFromStrides(shape, stride, offset, n);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>        }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>        private static int get1DIndexFromStrides(final int[] shape, final int[] stride, final int offset, final int[] n) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                if (shape == null) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        throw new IllegalArgumentException("Cannot find an index from a null shape");<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                final int rank = shape.length;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                if (rank != n.length) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        String errMsg = String.format("Number of position values must be equal to rank of %d", rank);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                        logger.error(errMsg);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        throw new IllegalArgumentException(errMsg);<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                int index = offset;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        final int st = stride[i];<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                        if (st != 0) { // not broadcasted<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                final int si = shape[i];<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                int ni = n[i];<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                if (ni &lt; 0) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                        ni += si;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                if (ni &lt; 0 || ni &gt;= si) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        throwAIOOBException(ni, si, i);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                index += st * ni;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                return index;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span><a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>        @Override<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        public int[] getNDPosition(final int n) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                if (isIndexInRange(n)) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        throw new IllegalArgumentException("Index provided " + n<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                        + "is larger then the size of the containing array");<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span><a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                return stride == null ? ShapeUtils.getNDPositionFromShape(n, shape) : getNDPositionFromStrides(n);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span><a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        private boolean isIndexInRange(final int n) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (stride == null) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        return n &gt;= size;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                return n &gt;= getBufferLength();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        /**<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * @return entire buffer length<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         */<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        abstract protected int getBufferLength();<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        private int[] getNDPositionFromStrides(int n) {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                n -= offset;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                int rank = shape.length;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                if (rank == 1) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        return new int[] { n / stride[0] };<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span><a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                int[] output = new int[rank];<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                int i = 0;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                while (i != n) { // TODO find more efficient way than this exhaustive search<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        int j = rank - 1;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        for (; j &gt;= 0; j--) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                output[j]++;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                i += stride[j];<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                if (output[j] &gt;= shape[j]) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                        output[j] = 0;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        i -= shape[j] * stride[j];<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                } else {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        break;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        if (j == -1) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                logger.error("Index was not found in this strided dataset");<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                throw new IllegalArgumentException("Index was not found in this strided dataset");<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span><a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                return output;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>        @Override<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>        public int checkAxis(int axis) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                return ShapeUtils.checkAxis(shape.length, axis);<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>        }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>        @Deprecated<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        protected static int checkAxis(int rank, int axis) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                return ShapeUtils.checkAxis(rank, axis);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        }<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span><a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        protected static final char BLOCK_OPEN = '[';<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        protected static final char BLOCK_CLOSE = ']';<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span><a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        @Override<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>        public String toString() {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                final int rank = shape == null ? 0 : shape.length;<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                final StringBuilder out = new StringBuilder();<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span><a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                if (DTypeUtils.isDTypeElemental(getDType())) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        out.append("Dataset ");<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                } else {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        out.append("Compound dataset (");<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        out.append(getElementsPerItem());<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        out.append(") ");<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span><a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                if (name != null &amp;&amp; name.length() &gt; 0) {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                        out.append("'");<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        out.append(name);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        out.append("' has shape ");<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                } else {<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        out.append("shape is ");<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span><a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                out.append(BLOCK_OPEN);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                if (rank &gt; 0) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        out.append(shape[0]);<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                for (int i = 1; i &lt; rank; i++) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        out.append(", " + shape[i]);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                out.append(BLOCK_CLOSE);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                return out.toString();<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span><a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>        @Override<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        public String toString(boolean showData) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                if (!showData) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                        return toString();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                }<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span><a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                if (size == 0) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        return "[]";<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                }<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span><a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                final int rank = shape == null ? 0 : shape.length;<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final StringBuilder out = new StringBuilder();<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                if (rank &gt; 0) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        int[] pos = new int[rank];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        final StringBuilder lead = new StringBuilder();<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                        printBlocks(out, lead, 0, pos);<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                } else {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        out.append(getString());<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                return out.toString();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>        }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span><a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>        /**<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * Limit to strings output via the toString() method<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         */<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>        private static int maxStringLength = 120;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>        /**<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>         * Set maximum line length for toString() method<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>         * @param maxLineLength<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>         */<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        public static void setMaxLineLength(int maxLineLength) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                maxStringLength = maxLineLength;<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>        }<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        /**<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         * @return maximum line length for toString() method<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>         */<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        public static int getMaxLineLength() {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                return maxStringLength;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>         * Limit to number of sub-blocks output via the toString() method<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         */<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        private static final int MAX_SUBBLOCKS = 6;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>        private final static String SEPARATOR = ",";<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        private final static String SPACE = " ";<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        private final static String ELLIPSIS = "...";<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>        private final static String NEWLINE = "\n";<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span><a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>        /**<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>         * Make a line of output for last dimension of dataset<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>         * <a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>         * @param start<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         * @return line<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>         */<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>        private StringBuilder makeLine(final int end, final int[] start) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                StringBuilder line = new StringBuilder();<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                final int[] pos;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                if (end &gt;= start.length) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                        pos = Arrays.copyOf(start, end + 1);<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                } else {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                        pos = start;<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                }<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                pos[end] = 0;<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                line.append(BLOCK_OPEN);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                line.append(getString(pos));<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                final int length = shape[end];<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                // trim elements printed if length exceed estimate of maximum elements<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                int excess = length - maxStringLength / 3; // space + number + separator<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                int midIndex = -1;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                if (excess &gt; 0) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                        int index = (length - excess) / 2;<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        for (int y = 1; y &lt; index; y++) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                line.append(SEPARATOR + SPACE);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                                pos[end] = y;<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                line.append(getString(pos));<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                        midIndex = line.length() + 2;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                        index = (length + excess) / 2;<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                        for (int y = index; y &lt; length; y++) {<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                line.append(SEPARATOR + SPACE);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                pos[end] = y;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                line.append(getString(pos));<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                } else {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        for (int y = 1; y &lt; length; y++) {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                line.append(SEPARATOR + SPACE);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                pos[end] = y;<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                line.append(getString(pos));<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                        }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                line.append(BLOCK_CLOSE);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                // trim string down to limit<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                int lineLength = line.length();<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                excess = lineLength - maxStringLength - ELLIPSIS.length() - 1;<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                if (excess &gt; 0) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        int index = (lineLength - excess) / 2;<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        if (midIndex &gt; 0 &amp;&amp; index &gt; midIndex) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                index = midIndex;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        } else {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                index = line.lastIndexOf(SEPARATOR, index) + 2;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        StringBuilder out = new StringBuilder(line.subSequence(0, index));<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        out.append(ELLIPSIS + SEPARATOR);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                        index = (lineLength + excess) / 2;<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        if (midIndex &gt; 0 &amp;&amp; index &lt;= midIndex) {<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                index = midIndex - 1;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                        } else {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                index = line.indexOf(SEPARATOR, index) + 1;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        out.append(line.subSequence(index, lineLength));<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        return out;<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                } else if (midIndex &gt; 0) { // add ellipsis<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        StringBuilder out = new StringBuilder(line.subSequence(0, midIndex));<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        out.append(ELLIPSIS + SEPARATOR + SPACE);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        out.append(line.subSequence(midIndex, lineLength));<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                        return out;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                return line;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span><a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>        /**<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>         * recursive method to print blocks<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>         */<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        private void printBlocks(final StringBuilder out, final StringBuilder lead, final int level, final int[] pos) {<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                if (out.length() &gt; 0) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                        char last = out.charAt(out.length() - 1);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                        if (last != BLOCK_OPEN) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                out.append(lead);<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                }<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                final int end = getRank() - 1;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                if (level != end) {<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                        out.append(BLOCK_OPEN);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        int length = shape[level];<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span><a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        // first sub-block<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        pos[level] = 0;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        StringBuilder newlead = new StringBuilder(lead);<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        newlead.append(SPACE);<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                        printBlocks(out, newlead, level + 1, pos);<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (length &lt; 2) { // escape<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                out.append(BLOCK_CLOSE);<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                return;<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span><a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                        out.append(SEPARATOR + NEWLINE);<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                        for (int i = level + 1; i &lt; end; i++) {<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                out.append(NEWLINE);<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                        }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                        // middle sub-blocks<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        if (length &lt; MAX_SUBBLOCKS) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                for (int x = 1; x &lt; length - 1; x++) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                        pos[level] = x;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        if (end &lt;= level + 1) {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        } else {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        }<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                }<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        } else {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                final int excess = length - MAX_SUBBLOCKS;<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                int xmax = (length - excess) / 2;<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                for (int x = 1; x &lt; xmax; x++) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                        pos[level] = x;<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                        if (end &lt;= level + 1) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        } else {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                out.append(newlead);<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                out.append(ELLIPSIS + SEPARATOR + NEWLINE);<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                xmax = (length + excess) / 2;<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                for (int x = xmax; x &lt; length - 1; x++) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        pos[level] = x;<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        printBlocks(out, newlead, level + 1, pos);<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        if (end &lt;= level + 1) {<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                                out.append(SEPARATOR + NEWLINE);<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                        } else {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                out.append(SEPARATOR + NEWLINE + NEWLINE);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span><a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                        // last sub-block<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                        pos[level] = length - 1;<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        printBlocks(out, newlead, level + 1, pos);<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                        out.append(BLOCK_CLOSE);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                } else {<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        out.append(makeLine(end, pos));<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                }<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>        }<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>        @Override<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>        public Dataset squeezeEnds() {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                return squeeze(true);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>        }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>        @Override<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        public Dataset squeeze() {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                return squeeze(false);<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>        }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span><a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>        @Override<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>        public Dataset squeeze(boolean onlyFromEnds) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                final int[] tshape = ShapeUtils.squeezeShape(shape, onlyFromEnds);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                final int[] oshape = shape;<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                if (stride == null) {<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        shape = tshape;<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                        int rank = shape.length;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                        int trank = tshape.length;<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                        if (trank &lt; rank) {<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                int[] tstride = new int[tshape.length];<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                if (onlyFromEnds) {<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                        for (int i = 0; i &lt; rank; i++) {<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                                if (shape[i] != 1) {<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                                                        for (int k = 0; k &lt; trank; k++) {<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                                                                tstride[k] = stride[i++];<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                                                        }<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                                                        break;<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                                                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                        }<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                } else {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                        int t = 0;<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        for (int i = 0; i &lt; rank; i++) {<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                                if (shape[i] != 1) {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                                        tstride[t++] = stride[i];<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                                }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                        }<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                }<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                shape = tshape;<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                stride = tstride;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                        }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                }<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                setDirty();<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                reshapeMetadata(oshape, shape);<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                return this;<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>        }<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span><a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        @Override<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>        public boolean isCompatibleWith(final ILazyDataset g) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                return ShapeUtils.areShapesCompatible(shape, g.getShape());<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span><a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        @Override<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>        public void checkCompatibility(final ILazyDataset g) throws IllegalArgumentException {<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                ShapeUtils.checkCompatibility(this, g);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>        }<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span><a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>        @Override<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>        public Dataset reshape(final int... shape) {<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                Dataset a;<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                try {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                        a = getView(true);<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                        a.setShape(shape);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                } catch (IllegalArgumentException e) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        a = clone();<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                        a.setShape(shape);<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                return a;<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>        }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span><a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>        /**<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>         * @param start<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>         * @param stop<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>         * @param step<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         * @return number of steps to take<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         */<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>        protected static int calcSteps(final double start, final double stop, final double step) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                return Math.max(0, (int) Math.ceil((stop - start) / step));<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>        }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span><a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>        @Override<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>        public boolean isComplex() {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                int type = getDType();<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                return type == COMPLEX64 || type == COMPLEX128;<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        }<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span><a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        @Override<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>        public Dataset getRealPart() {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                return this;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span><a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>        @Override<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>        public Dataset getRealView() {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                return getView(true);<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>        }<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>        @Override<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        public Dataset getSlice(final int[] start, final int[] stop, final int[] step) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                return getSlice(new SliceND(shape, start, stop, step));<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>        }<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>        @Override<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>        public Dataset getSlice(Slice... slice) {<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                return getSlice(new SliceND(shape, slice));<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span><a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>        @Override<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        public Dataset getSlice(IMonitor monitor, Slice... slice) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                return getSlice(slice);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span><a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        @Override<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>        public Dataset getSlice(IMonitor monitor, SliceND slice) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                return getSlice(slice);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>        }<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span><a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>        @Override<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        public Dataset getSlice(IMonitor monitor, int[] start, int[] stop, int[] step) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                return getSlice(start, stop, step);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span><a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>        /**<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>         * @param slice<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * @return The dataset of the sliced data<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         */<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>        @Override<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>        public Dataset getSlice(final SliceND slice) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                SliceIterator it = (SliceIterator) getSliceIterator(slice);<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                AbstractDataset s = getSlice(it);<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                s.metadata = copyMetadata();<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                s.setDirty();<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                s.sliceMetadata(true, slice);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                return s;<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>        }<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span><a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>        /**<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>         * <a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>         * @param iterator Slice iterator<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>         * @return The dataset of the sliced data<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>         */<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>        abstract public AbstractDataset getSlice(final SliceIterator iterator);<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span><a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        @SuppressWarnings("deprecation")<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>        @Override<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>        public Dataset setSlice(final Object obj, final SliceND slice) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                Dataset ds;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                if (obj instanceof Dataset) {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                        ds = (Dataset) obj;<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                } else if (obj instanceof IDataset) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        ds = DatasetUtils.convertToDataset((IDataset) obj);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                } else {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        int dtype = getDType();<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        if (dtype != Dataset.BOOL) {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                dtype = DTypeUtils.getLargestDType(dtype);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                        }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                        ds = DatasetFactory.createFromObject(getElementsPerItem(), dtype, obj);<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span><a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                return setSlicedView(getSliceView(slice), ds);<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>        }<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span><a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>        @Override<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>        public Dataset setSlice(final Object obj, final int[] start, final int[] stop, final int[] step) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                return setSlice(obj, new SliceND(shape, start, stop, step));<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span><a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>        /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>         * Set a view of current dataset to given dataset with broadcasting<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>         * @param view<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>         * @param d<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * @return this dataset<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         */<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        abstract Dataset setSlicedView(Dataset view, Dataset d);<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span><a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>        @Override<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>        public Dataset setSlice(Object obj, Slice... slice) {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                if (slice == null || slice.length == 0) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                        return setSlice(obj, new SliceND(shape));<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                return setSlice(obj, new SliceND(shape, slice));<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>        }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span><a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>        @Override<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>        public boolean all() {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                return Comparisons.allTrue(this);<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>        }<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span><a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        @Override<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>        public BooleanDataset all(final int axis) {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                return Comparisons.allTrue(this, axis);<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>        }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>        @Override<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        public boolean any() {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                return Comparisons.anyTrue(this);<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span><a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>        @Override<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>        public BooleanDataset any(final int axis) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                return Comparisons.anyTrue(this, axis);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span><a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>        @Override<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>        public Dataset ifloorDivide(final Object o) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                return idivide(o).ifloor();<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>        }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>        @Override<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>        public double residual(final Object o) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                return residual(o, null, false);<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>        }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>        @Override<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>        public double residual(final Object o, boolean ignoreNaNs) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                return residual(o, null, ignoreNaNs);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span><a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>        /**<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>         * @since 2.0<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>         */<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>        @SuppressWarnings("unchecked")<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        protected StatisticsMetadata&lt;Number&gt; getStats() {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                StatisticsMetadata&lt;Number&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                if (md == null || md.isDirty()) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                        md = new StatisticsMetadataImpl&lt;Number&gt;();<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                        md.initialize(this);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                        setMetadata(md);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                return md;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>        }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span><a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>        /**<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>         * @since 2.0<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>         */<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>        @SuppressWarnings("unchecked")<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>        protected StatisticsMetadata&lt;String&gt; getStringStats() {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                StatisticsMetadata&lt;String&gt; md = getFirstMetadata(StatisticsMetadata.class);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                if (md == null || md.isDirty()) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                        md = new StatisticsMetadataImpl&lt;String&gt;();<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                        md.initialize(this);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                        setMetadata(md);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                }<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                return md;<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>        }<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span><a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        @Override<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>        public Number max(boolean... ignoreInvalids) {<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                return getStats().getMaximum(ignoreInvalids);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>        }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span><a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>        @Override<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>        public Dataset max(int axis, boolean... ignoreInvalids) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                return getStats().getMaximum(axis, ignoreInvalids);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span><a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        @Override<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>        public Number min(boolean... ignoreInvalids) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                return getStats().getMinimum(ignoreInvalids);<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        }<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span><a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>        @Override<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>        public Dataset min(int axis, boolean... ignoreInvalids) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                return getStats().getMinimum(axis, ignoreInvalids);<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span><a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>        @Override<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>        public int argMax(boolean... ignoreInvalids) {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                return getFlat1DIndex(maxPos(ignoreInvalids));<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        }<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span><a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        /**<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>         * @since 2.0<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>         */<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        @Override<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>        public IntegerDataset argMax(int axis, boolean... ignoreInvalids) {<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                return (IntegerDataset) getStats().getArgMaximum(axis, ignoreInvalids);<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>        }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span><a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>        @Override<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>        public int argMin(boolean... ignoreInvalids) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                return getFlat1DIndex(minPos(ignoreInvalids));<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>        /**<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>         * @since 2.0<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>         */<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>        @Override<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        public IntegerDataset argMin(int axis, boolean... ignoreInvalids) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                return (IntegerDataset) getStats().getArgMinimum(axis, ignoreInvalids);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        }<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span><a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        @Override<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>        public Number peakToPeak(boolean... ignoreInvalids) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                return DTypeUtils.fromDoubleToBiggestNumber(max(ignoreInvalids).doubleValue() - min(ignoreInvalids).doubleValue(), getDType());<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span><a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>        @Override<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>        public Dataset peakToPeak(int axis,  boolean... ignoreInvalids) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                return Maths.subtract(max(axis, ignoreInvalids), min(axis, ignoreInvalids));<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>        }<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span><a name="line.1628"></a>
+<span class="sourceLineNo">1629</span><a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>        @Override<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        public long count(boolean... ignoreInvalids) {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                return getStats().getCount(ignoreInvalids);<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>        }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span><a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>        @Override<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>        public Dataset count(int axis, boolean... ignoreInvalids) {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                return getStats().getCount(axis, ignoreInvalids);<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span><a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        @Override<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>        public Object sum(boolean... ignoreInvalids) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                return getStats().getSum(ignoreInvalids);<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>        }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span><a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>        @Override<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>        public Dataset sum(int axis, boolean... ignoreInvalids) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                return getStats().getSum(axis, ignoreInvalids);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span><a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>        @Override<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>        public Object product(boolean... ignoreInvalids) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                return Stats.product(this, ignoreInvalids);<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        }<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>        @Override<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        public Dataset product(int axis, boolean... ignoreInvalids) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                return Stats.product(this, axis, ignoreInvalids);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>        }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        @Override<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>        public Object mean(boolean... ignoreInvalids) {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                return getStats().getMean(ignoreInvalids);<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>        }<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span><a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>        @Override<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>        public Dataset mean(int axis, boolean... ignoreInvalids) {<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                return getStats().getMean(axis, ignoreInvalids);<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>        }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span><a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>        @Override<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>        public double variance() {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                return variance(false);<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>        }<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span><a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>        @Override<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                return getStats().getVariance(isWholePopulation, ignoreInvalids);<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span><a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>        @Override<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>        public Dataset variance(int axis) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                return getStats().getVariance(axis, false);<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>        }<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span><a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>        @Override<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>        public Dataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                return getStats().getVariance(axis, isWholePopulation, ignoreInvalids);<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>        }<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span><a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        @Override<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>        public double stdDeviation() {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                return Math.sqrt(variance());<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>        }<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span><a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>        @Override<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>        public double stdDeviation(boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                return Math.sqrt(variance(isWholePopulation, ignoreInvalids));<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span><a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        @Override<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>        public Dataset stdDeviation(int axis) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                return Maths.sqrt(variance(axis, false));<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>        }<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span><a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        @Override<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>        public Dataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                return Maths.sqrt(variance(axis, isWholePopulation, ignoreInvalids));<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>        }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span><a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        @Override<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>        public double rootMeanSquare(boolean... ignoreInvalids) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                final double mean = stats.getMean(ignoreInvalids).doubleValue();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                final double var = stats.getVariance(true, ignoreInvalids);<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                return Math.sqrt(var + mean * mean);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span><a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>        @Override<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        public Dataset rootMeanSquare(int axis, boolean... ignoreInvalids) {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                StatisticsMetadata&lt;Number&gt; stats = getStats();<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                Dataset v = stats.getVariance(axis, true, ignoreInvalids);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                Dataset m = stats.getMean(axis, ignoreInvalids);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                Dataset result = Maths.multiply(m, m);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                return Maths.sqrt(result.iadd(v));<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>        }<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span><a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>        /**<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>         * Set item from compatible dataset in a direct and speedy way. Remember to setDirty afterwards.<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>         * <a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>         * @param dindex<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>         * @param sindex<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>         * @param src<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>         *            is the source data buffer<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>         */<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        protected abstract void setItemDirect(final int dindex, final int sindex, final Object src);<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span><a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        /**<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>         * @return error broadcasted to current shape<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>         */<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        private Dataset getBroadcastedInternalError() {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                if (shape == null) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                        throw new IllegalArgumentException("Cannot get error for null dataset");<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                ILazyDataset led = super.getErrors();<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                if (led == null)<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                        return null;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                Dataset ed = null;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                } catch (DatasetException e) {<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        logger.error("Could not get data from lazy dataset", e);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                if (led != ed) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        setErrors(ed); // set back<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span><a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                return ed.getBroadcastView(shape);<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span><a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>        @Override<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        public Dataset getErrors() {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                if (ed == null)<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                        return null;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                return ed;<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        }<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span><a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>        @Override<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>        public double getError() {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                if (ed == null)<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        return 0;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span><a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                return ed.getDouble();<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>        }<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span><a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>        @Override<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        public double getError(final int i) {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                if (ed == null)<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                        return 0;<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span><a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                return ed.getDouble(i);<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        @Override<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>        public double getError(final int i, final int j) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                if (ed == null)<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                        return 0;<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span><a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                return ed.getDouble(i, j);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>        }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span><a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        @Override<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        public double getError(int... pos) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                if (ed == null)<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        return 0;<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span><a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                return ed.getDouble(pos);<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>        }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        @Override<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>        public double[] getErrorArray(final int i) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                if (ed == null)<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        return null;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span><a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                return new double[] {getError(i)};<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>        @Override<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>        public double[] getErrorArray(final int i, final int j) {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                if (ed == null)<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        return null;<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span><a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                return new double[] {getError(i, j)};<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>        }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>        @Override<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        public double[] getErrorArray(int... pos) {<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                Dataset ed = getBroadcastedInternalError();<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                if (ed == null)<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                        return null;<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span><a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                return new double[] {getError(pos)};<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>        }<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span><a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>        protected Dataset getInternalSquaredError() {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                Dataset sed = getErrorBuffer().getBroadcastView(shape);<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                return sed;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>        }<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span><a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>        @Override<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>        public Dataset getErrorBuffer() {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                if (emd == null)<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                        return null;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                if (!(emd instanceof ErrorMetadataImpl)) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                        ILazyDataset led = emd.getError();<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                        Dataset ed;<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                        try {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                ed = DatasetUtils.sliceAndConvertLazyDataset(led);<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                setMetadata(emd);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                emd.setError(ed);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        } catch (MetadataException me) {<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                logger.error("Could not create metadata", me);<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                        } catch (DatasetException e) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                logger.error("Could not get data from lazy dataset", e);<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                        }<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span><a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                return ((ErrorMetadataImpl) emd).getSquaredError();<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>        }<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span><a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>        /**<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>         * Set a copy of the buffer that backs the (squared) error data<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>         * @param buffer can be null, anything that can be used to create a DoubleDataset or CompoundDoubleDataset<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>         */<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>        @Override<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>        public void setErrorBuffer(Serializable buffer) {<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                if (shape == null) {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                        throw new IllegalArgumentException("Cannot set error buffer for null dataset");<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                }<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                if (buffer == null) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                        clearMetadata(ErrorMetadata.class);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                        return;<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span><a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                IDataset d = (IDataset) createFromSerializable(buffer, false);<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                if (!(emd instanceof ErrorMetadataImpl)) {<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                        try {<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                setMetadata(emd);<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        } catch (MetadataException me) {<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                logger.error("Could not create metadata", me);<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                ((ErrorMetadataImpl) emd).setSquaredError(d);<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        }<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>}<a name="line.1888"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AggregateDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AggregateDataset.html
new file mode 100644
index 0000000..23c2cf2
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/AggregateDataset.html
@@ -0,0 +1,426 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.ArrayList;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.List;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.DatasetException;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.IMonitor;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Class to aggregate a set of lazy datasets and present them as a single lazy dataset where<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * the first position value accesses the aggregation<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public class AggregateDataset extends LazyDatasetBase implements ILazyDataset {<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        /**<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * Update this when there are any serious changes to API<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = -5523566223386837581L;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        private ILazyDataset[] data = null; // array of lazy datasets<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private int[] map = null;    // map first dimension to index of dataset<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private int[] offset = null; // cumulative first dimension lengths used as slice offsets<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        private int size;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private int dtype = -1;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        private int isize; // number of elements per item<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        protected AggregateDataset base = null;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        private int[] sliceStart = null;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        private int[] sliceStep  = null;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>        /**<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * Calculate (possibly extended) shapes from given datasets<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param extend if true, extend rank by one<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param datasets<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @return array of shapes<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public static int[][] calcShapes(boolean extend, ILazyDataset... datasets) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                if (datasets.length == 0)<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        throw new IllegalArgumentException("No datasets given");<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>                int maxRank = -1;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                for (ILazyDataset d : datasets) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        if (d == null)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                                throw new IllegalArgumentException("Null dataset given");<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        int r = d.getRank();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        if (r &gt; maxRank)<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                                maxRank = r;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>                if (extend)<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        maxRank++;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                int[][] shapes = new int[datasets.length][];<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                for (int j = 0; j &lt; datasets.length; j++) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        ILazyDataset d = datasets[j];<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        int[] s = d.getShape();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        if (s.length &lt; maxRank) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                int[] ns = new int[maxRank];<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                int start = maxRank - s.length;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                for (int i = 0; i &lt; start; i++) { // prepend ones as necessary<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                        ns[i] = 1;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                for (int i = 0; i &lt; s.length; i++) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        ns[i+start] = s[i];<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                s = ns;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        shapes[j] = s;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                return shapes;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        AggregateDataset(int itemSize, int[] shape, int dtype) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                isize = itemSize;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                this.shape = shape.clone();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                try {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        size = ShapeUtils.calcSize(shape);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                } catch (IllegalArgumentException e) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        size = Integer.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                this.dtype = dtype;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>        /**<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * Create an aggregate dataset<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param extend if true, extend rank by one<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param datasets<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         */<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        public AggregateDataset(boolean extend, ILazyDataset... datasets) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                final int[][] shapes = calcShapes(extend, datasets);<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>                // check for same (sub-)shape<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                final int[] s = shapes[0];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                final int axis = extend ? -1 : 0;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                for (int j = 1; j &lt; shapes.length; j++) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        if (!ShapeUtils.areShapesCompatible(s, shapes[j], axis))<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                throw new IllegalArgumentException("Dataset '" + datasets[j].getName() + "' has wrong shape");<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>                // set shapes of datasets<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                final int maxRank = s.length;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                data = new ILazyDataset[datasets.length];<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                isize = datasets[0].getElementsPerItem();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                for (int j = 0; j &lt; datasets.length; j++) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        ILazyDataset d = datasets[j];<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        int[] ds = d.getShape();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        if (ds.length &lt; maxRank) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                d = d.clone();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                d.setShape(shapes[j]);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        data[j] = d;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        if (d.getElementsPerItem() != isize) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                throw new IllegalArgumentException("All datasets must have the same number of elements");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>                // calculate new shape<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                shape = new int[maxRank];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                for (int i = 1; i &lt; shape.length; i++) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        shape[i] = s[i];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                if (extend) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        shape[0] = data.length;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                } else {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        for (int j = 0; j &lt; datasets.length; j++) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                shape[0] += shapes[j][0];<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        size = ShapeUtils.calcSize(shape);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (IllegalArgumentException e) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        size = Integer.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>                // work out offsets from cumulative lengths<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                offset = new int[data.length];<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                int cd = 0;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                for (int i = 0; i &lt; data.length; i++) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        offset[i] = cd;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        cd += data[i].getShape()[0];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                // calculate mapping from aggregate dimension to dataset array index<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                map = new int[shape[0]];<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                int k = 0;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                for (int i = 0; i &lt; data.length; i++) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        int jmax = data[i].getShape()[0];<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        for (int j = 0; j &lt; jmax; j++)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                map[k++] = i;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                for (ILazyDataset d : data) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        if (d instanceof LazyDatasetBase) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                dtype = DTypeUtils.getBestDType(dtype, ((LazyDatasetBase) d).getDType());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        } else {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                dtype = DTypeUtils.getBestDType(dtype, DTypeUtils.getDTypeFromClass(d.getElementClass(), d.getElementsPerItem()));<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                for (ILazyDataset d : data) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        String n = d.getName();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        if (n != null) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                name = n;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                break;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>        @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        public Class&lt;?&gt; getElementClass() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                return DTypeUtils.getElementClass(dtype);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>        @Override<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        public int getElementsPerItem() {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                return isize;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>        @Override<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public int getDType() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return dtype;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>        @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public int getSize() {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                return size;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        public void setShape(int... shape) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                throw new UnsupportedOperationException("Not implemented");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        public ILazyDataset squeezeEnds() {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                throw new UnsupportedOperationException("Not implemented");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        public Dataset getSlice(int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                return getSlice(null, new SliceND(shape, start, stop, step));<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        @Override<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public Dataset getSlice(IMonitor monitor, int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                return getSlice(monitor, new SliceND(shape, start, stop, step));<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>        @Override<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public Dataset getSlice(IMonitor monitor, SliceND slice) throws DatasetException {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                int[] start = slice.getStart();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                int[] stop  = slice.getStop();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                int[] step  = slice.getStep();<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>                if (base != null) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        for (int i = 0; i &lt; shape.length; i++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                start[i] = sliceStart[i] + start[i] * sliceStep[i];<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                stop[i]  = sliceStart[i] + (stop[i] - 1) * sliceStep[i] + 1;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                step[i]  = step[i] * sliceStep[i];<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        return base.getSlice(monitor, start, stop, step);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>                // convert first dimension's slice to individual slices per stored dataset<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                int fb = start[0];<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int fe = stop[0];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                int fs = step[0];<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>                List&lt;Dataset&gt; sliced = new ArrayList&lt;Dataset&gt;();<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                int op = fb;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                int p = op;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                ILazyDataset od = data[map[op]];<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                ILazyDataset nd; <a name="line.249"></a>
+<span class="sourceLineNo">250</span>                while (p &lt; fe) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        <a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        if (monitor!=null &amp;&amp; monitor.isCancelled()) throw new DatasetException("Slice cancelled");<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        nd = data[map[p]];<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        if (nd != od) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                start[0] = op - offset[map[op]];<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                stop[0] = p - offset[map[op]];<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                Dataset a = DatasetUtils.convertToDataset(od.getSlice(monitor, start, stop, step));<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                sliced.add(a.cast(dtype));<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                od = nd;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                op = p;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        p += fs;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                start[0] = op - offset[map[op]];<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                stop[0] = p - offset[map[op]];<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                Dataset a = DatasetUtils.convertToDataset(od.getSlice(monitor, start, stop, step));<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                sliced.add(a.cast(dtype));<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>                Dataset d = DatasetUtils.concatenate(sliced.toArray(new Dataset[0]), 0);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                d.setName(name);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                return d;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>        @Override<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        public Dataset getSlice(Slice... slice) throws DatasetException {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                return getSlice(null, slice);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>        @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public Dataset getSlice(SliceND slice) throws DatasetException {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return getSlice(null, slice);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        public Dataset getSlice(IMonitor monitor, Slice... slice) throws DatasetException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                return getSlice(monitor, new SliceND(shape, slice));<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>        @Override<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public AggregateDataset getSliceView(Slice... slice) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                return getSliceView(new SliceND(shape, slice));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        }<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>        @Override<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        public AggregateDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                return getSliceView(new SliceND(shape, start, stop, step));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        }<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>        @Override<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        public AggregateDataset getSliceView(SliceND slice) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                AggregateDataset lazy = new AggregateDataset(isize, slice.getShape(), dtype);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                lazy.sliceStart = slice.getStart();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                lazy.sliceStep  = slice.getStep();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                lazy.name = name + "[" + slice + "]";<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                lazy.base = base == null ? this : base;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                return lazy;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>        @Override<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        public AggregateDataset getTransposedView(int... axes) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                throw new UnsupportedOperationException("Not implemented");<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        @Override<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        public AggregateDataset clone() {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                throw new UnsupportedOperationException("Not implemented");<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>        @Override<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public String toString() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                StringBuilder out = new StringBuilder();<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>                if (name != null &amp;&amp; name.length() &gt; 0) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        out.append("Aggregate dataset '");<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        out.append(name);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        out.append("' has shape [");<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                } else {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        out.append("Aggregate dataset shape is [");<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                int rank = shape == null ? 0 : shape.length;<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                if (rank &gt; 0 &amp;&amp; shape[0] &gt; 0) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        out.append(shape[0]);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                for (int i = 1; i &lt; rank; i++) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        out.append(", " + shape[i]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                out.append(']');<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>                return out.toString();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        <a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setErrors(Serializable errors) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                throw new RuntimeException("setLazyErrors is unimplemented for "+getClass().getSimpleName());<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        <a name="line.348"></a>
+<span class="sourceLineNo">349</span>        @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        public ILazyDataset getErrors() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                return null;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>}<a name="line.354"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html
new file mode 100644
index 0000000..da7c31f
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BinaryOperation.Stub.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a binary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface BinaryOperation extends IOperation {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param a<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param b<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return a op b<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a, long b);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return a op b<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        long longOperate(long a, long b);<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param b<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a op b<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        double doubleOperate(double a, double b);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param out holds (ra, ia) op (rb, ib)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param ra<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param ia<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param rb<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param ib<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        void complexOperate(double[] out, double ra, double ia, double rb, double ib);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param a<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param b<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @return string to represent output<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @since 2.0<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        String toString(String a, String b);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        /**<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * Stub class where only three methods need to be overridden:<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         *  {@link #complexOperate(double[], double, double, double, double)},<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *  {@link #toString(String, String)}<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public static class Stub implements BinaryOperation {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                double[] z = new double[2];<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public double doubleOperate(double a, double b) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        complexOperate(z, a, 0, b, 0);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        return z[0];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>                @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                public boolean booleanOperate(long a, long b) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return doubleOperate(a, b) != 0;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                @Override<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                public long longOperate(long a, long b) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return DTypeUtils.toLong(doubleOperate(a, b));<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>                /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                 * override this<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>                /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                 * override this<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                 */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                public String toString(String string, String string2) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>}<a name="line.97"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BinaryOperation.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BinaryOperation.html
new file mode 100644
index 0000000..da7c31f
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BinaryOperation.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a binary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface BinaryOperation extends IOperation {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param a<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param b<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return a op b<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a, long b);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return a op b<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        long longOperate(long a, long b);<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param b<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a op b<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        double doubleOperate(double a, double b);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param out holds (ra, ia) op (rb, ib)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param ra<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param ia<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param rb<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param ib<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        void complexOperate(double[] out, double ra, double ia, double rb, double ib);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param a<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param b<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @return string to represent output<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @since 2.0<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        String toString(String a, String b);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        /**<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * Stub class where only three methods need to be overridden:<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         *  {@link #complexOperate(double[], double, double, double, double)},<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *  {@link #toString(String, String)}<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public static class Stub implements BinaryOperation {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                double[] z = new double[2];<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public double doubleOperate(double a, double b) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        complexOperate(z, a, 0, b, 0);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        return z[0];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>                @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                public boolean booleanOperate(long a, long b) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return doubleOperate(a, b) != 0;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                @Override<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                public long longOperate(long a, long b) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return DTypeUtils.toLong(doubleOperate(a, b));<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>                /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                 * override this<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>                /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                 * override this<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                 */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                public String toString(String string, String string2) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>}<a name="line.97"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html
new file mode 100644
index 0000000..5d43f91
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanBroadcastIterator.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2017 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.List;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * which have lower rank and outputs to a third dataset<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * @since 2.1<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class BooleanBroadcastIterator extends BooleanIteratorBase {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private int[] cShape;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private int[] cStride;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private final int[] cDelta;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private final int cStep;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int cMax;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int cStart;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * Construct a boolean iterator that stops at every position in the choice dataset where its value matches<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * the given boolean<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param v boolean value<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param a primary dataset<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param c choice dataset<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param o output dataset, can be null<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public BooleanBroadcastIterator(boolean v, Dataset a, Dataset c, Dataset o, boolean createIfNull) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                super(v, a, c, o);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), c.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>                maxShape = fullShapes.remove(0);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                oStride = null;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                if (o != null &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                }<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                aShape = fullShapes.remove(0);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                cShape = fullShapes.remove(0);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>                int rank = maxShape.length;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                endrank = rank - 1;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                aDataset = a.reshape(aShape);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                cDataset = c.reshape(cShape);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                cStride = BroadcastUtils.createBroadcastStrides(cDataset, maxShape);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                if (outputA) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        oStride = aStride;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        oDelta = null;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        oStep = 0;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                } else if (o != null) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        oDelta = new int[rank];<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        oStep = o.getElementsPerItem();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                } else if (createIfNull) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        oDataset = BroadcastUtils.createDataset(a, c, maxShape);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        oDelta = new int[rank];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        oStep = oDataset.getElementsPerItem();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                } else {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        oDelta = null;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        oStep = 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>                pos = new int[rank];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                aDelta = new int[rank];<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                cDelta = new int[rank];<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                cStep = cDataset.getElementsPerItem();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        cDelta[j] = cStride[j] * cShape[j];<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (oDelta != null) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                oDelta[j] = oStride[j] * maxShape[j];<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                aStart = aDataset.getOffset();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                cStart = cDataset.getOffset();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                cMax = endrank &lt; 0 ? cStep + cStart: Integer.MIN_VALUE;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                reset();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>        @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public boolean hasNext() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                do {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        int j = endrank;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        for (; j &gt;= 0; j--) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                pos[j]++;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                index += aStride[j];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                cIndex += cStride[j];<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                if (oDelta != null) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                        oIndex += oStride[j];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                if (pos[j] &gt;= maxShape[j]) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                        pos[j] = 0;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        index -= aDelta[j]; // reset these dimensions<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        cIndex -= cDelta[j];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        if (oDelta != null) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                                oIndex -= oDelta[j];<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                } else {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        break;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (j == -1) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                if (endrank &gt;= 0) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                        return false;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                index += aStep;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                cIndex += cStep;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                if (oDelta != null) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        oIndex += oStep;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        if (outputA) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                oIndex = index;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        <a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        if (index == aMax || cIndex == cMax) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                return false;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                } while (cDataset.getElementBooleanAbs(cIndex) != value);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return true;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @return shape of first broadcasted dataset<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         */<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        public int[] getFirstShape() {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                return aShape;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>        /**<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @return shape of second broadcasted dataset<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public int[] getMaskShape() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return cShape;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        @Override<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        public void reset() {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        pos[i] = 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (endrank &gt;= 0) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        pos[endrank] = -1;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        index = aStart - aStride[endrank];<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        cIndex = cStart - cStride[endrank];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                } else {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        index = aStart - aStep;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        cIndex = cStart - cStep;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        oIndex = oStart - oStep;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html
new file mode 100644
index 0000000..6520c33
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanContiguousIterator.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2017 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Class to run over a pair of contiguous datasets<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * @since 2.1<a name="line.14"></a>
+<span class="sourceLineNo">015</span> */<a name="line.15"></a>
+<span class="sourceLineNo">016</span>public class BooleanContiguousIterator extends BooleanIterator {<a name="line.16"></a>
+<span class="sourceLineNo">017</span>        private final int cMax; // maximum index in array<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private final int cStep;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * Construct a boolean iterator that stops at the position in choice dataset where its value matches<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * the given boolean<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param v boolean value<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param a primary dataset<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param c choice dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param o output dataset, can be null<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public BooleanContiguousIterator(boolean v, Dataset a, Dataset c, Dataset o, boolean createIfNull) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                super(v, a, c, o);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                aMax = a.getSize() * aStep;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                cStep = c.getElementsPerItem();<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                cMax = c.getSize() * cStep;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                if (outputA) {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                        oStep = aStep;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                } else if (o != null) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                        oStep = o.getElementsPerItem();<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                } else if (createIfNull) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        oDataset = BroadcastUtils.createDataset(a, c, a.getShapeRef());<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        oStep = oDataset.getElementsPerItem();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                } else {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                        oStep = 1;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                maxShape = a.getShape();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                reset();<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public boolean hasNext() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                do {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        index += aStep;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        cIndex += cStep;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        if (outputA) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                                oIndex = index;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        } else {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                oIndex += oStep;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        if (index &gt;= aMax || cIndex &gt;= cMax) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                return false;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                } while (cDataset.getElementBooleanAbs(cIndex) != value);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                return true;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public int[] getPos() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return null;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        @Override<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public void reset() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                index = -aStep;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                cIndex = -cStep;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                oIndex = -oStep;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>}<a name="line.79"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanDataset.html
new file mode 100644
index 0000000..5a5ca46
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanDataset.html
@@ -0,0 +1,427 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.text.MessageFormat;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Extend boolean base dataset for boolean values<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class BooleanDataset extends BooleanDatasetBase {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        // pin UID to base class<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * Create a null dataset<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        BooleanDataset() {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                super();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * Create a false-filled dataset of given shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param shape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        BooleanDataset(final int... shape) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                super(shape);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a dataset using given data<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param data<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param shape (can be null to create 1D dataset)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        BooleanDataset(final boolean[] data, int... shape) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                super(data, shape);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Copy a dataset<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param dataset<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        BooleanDataset(final BooleanDataset dataset) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                super(dataset);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>        /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * Cast a dataset to this class type<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param dataset<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        BooleanDataset(final Dataset dataset) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                super(dataset);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public BooleanDataset getView(boolean deepCopyMetadata) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                BooleanDataset view = new BooleanDataset();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                view.setData();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return view;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        @Override<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public BooleanDataset clone() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                return new BooleanDataset(this);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        }<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * <a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @param obj<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * @return dataset with contents given by input<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        static BooleanDataset createFromObject(final Object obj) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                BooleanDatasetBase result = BooleanDatasetBase.createFromObject(obj);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                return new BooleanDataset(result.data, result.shape);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        /**<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param shape<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @return a dataset filled with trues<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         */<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        static BooleanDataset ones(final int... shape) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                BooleanDatasetBase result = BooleanDatasetBase.ones(shape);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                return new BooleanDataset(result.data, result.shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>        @Override<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return data[index];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        @Override<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        public double getElementDoubleAbs(final int index) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                return data[index] ? 1 : 0;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public long getElementLongAbs(final int index) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return data[index] ? 1 : 0;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public double getDouble() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                return getInt();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        @Override<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        public double getDouble(final int i) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return getInt(i);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public double getDouble(final int i, final int j) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                return getInt(i, j);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>        @Override<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public double getDouble(final int... pos) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                return getInt(pos);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        @Override<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        public float getFloat() {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return getInt();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        public float getFloat(final int i) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                return getInt(i);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        public float getFloat(final int i, final int j) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                return getInt(i, j);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        @Override<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        public float getFloat(final int... pos) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                return getInt(pos);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>        @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        public long getLong() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                return getInt();<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        public long getLong(final int i) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                return getInt(i);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>        @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        public long getLong(final int i, final int j) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                return getInt(i, j);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public long getLong(final int... pos) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                return getInt(pos);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>        @Override<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        public int getInt() {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return get() ? 1 : 0;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int getInt(final int i) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return get(i) ? 1 : 0;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public int getInt(final int i, final int j) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return get(i, j) ? 1 : 0;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        @Override<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        public int getInt(final int... pos) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                return get(pos) ? 1 : 0;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>        @Override<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        public short getShort() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return (short) getInt();<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>        @Override<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        public short getShort(final int i) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                return (short) getInt(i);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        @Override<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        public short getShort(final int i, final int j) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                return (short) getInt(i, j);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>        @Override<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public short getShort(final int... pos) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                return (short) getInt(pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>        @Override<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        public byte getByte() {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                return (byte) getInt();<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>        @Override<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        public byte getByte(final int i) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return (byte) getInt(i);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>        @Override<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public byte getByte(final int i, final int j) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                return (byte) getInt(i, j);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>        @Override<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        public byte getByte(final int... pos) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                return (byte) getInt(pos);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>        @Override<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        public boolean getBoolean() {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                return get();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>        @Override<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public boolean getBoolean(final int i) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                return get(i);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>        @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        public boolean getBoolean(final int i, final int j) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return get(i, j);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>        @Override<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        public boolean getBoolean(final int... pos) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                return get(pos);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>        @Override<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        public String getStringAbs(final int index) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return stringFormat instanceof MessageFormat ? stringFormat.format(data[index]) :<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                String.format("%b", data[index]);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>        @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        public BooleanDataset getSlice(SliceIterator siter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                BooleanDatasetBase base = super.getSlice(siter);<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>                BooleanDataset slice = new BooleanDataset();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                copyToView(base, slice, false, false);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                slice.setData();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return slice;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * OR<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         */<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        @Override<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public BooleanDataset iadd(final Object b) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                while (it.hasNext()) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        data[it.aIndex] |= bds.getElementBooleanAbs(it.bIndex);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                setDirty();<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return this;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>        /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * XOR<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        public BooleanDataset isubtract(final Object b) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                while (it.hasNext()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        data[it.aIndex] ^= bds.getElementBooleanAbs(it.bIndex);<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                }<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                setDirty();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                return this;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>        /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * AND<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         */<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        @Override<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public BooleanDataset imultiply(final Object b) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                while (it.hasNext()) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        data[it.aIndex] &amp;= bds.getElementBooleanAbs(it.bIndex);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                setDirty();<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return this;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public BooleanDataset idivide(final Object b) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return imultiply(b);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public BooleanDataset iremainder(final Object b) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                logger.error("Unsupported method for class");<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        public BooleanDataset ipower(final Object b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                logger.error("Unsupported method for class");<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>        @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                double sum = 0;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        if (w == null) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                while (it.hasNext()) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                        if (data[it.aIndex] ^ bds.getElementBooleanAbs(it.bIndex))<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                                sum++;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                                }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        } else {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                IndexIterator itw = w.getIterator();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                double comp = 0;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                        if (data[it.aIndex] ^ bds.getElementBooleanAbs(it.bIndex)) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                                                final double err = w.getElementDoubleAbs(itw.index) - comp;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                                final double temp = sum + err;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                                comp = (temp - sum) - err;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                                sum = temp;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                        }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                return sum;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>}<a name="line.355"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html
new file mode 100644
index 0000000..98ed6cf
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanDatasetBase.html
@@ -0,0 +1,1018 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Extend dataset for boolean values // PRIM_TYPE<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class BooleanDatasetBase extends AbstractDataset {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // pin UID to base class<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        protected boolean[] data; // subclass alias // PRIM_TYPE<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        protected void setData() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                data = (boolean[]) odata; // PRIM_TYPE<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected static boolean[] createArray(final int size) { // PRIM_TYPE<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                boolean[] array = null; // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>                try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        array = new boolean[size]; // PRIM_TYPE<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                } catch (OutOfMemoryError e) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return array;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public int getDType() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return BOOL; // DATA_TYPE<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a null dataset<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        BooleanDatasetBase() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Create a zero-filled dataset of given shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        BooleanDatasetBase(final int... shape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (shape != null) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        size = ShapeUtils.calcSize(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        this.shape = shape.clone();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                odata = data = createArray(size);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } catch (Throwable t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException(t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * Create a dataset using given data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            (can be null to create 1D dataset)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        BooleanDatasetBase(final boolean[] data, int... shape) { // PRIM_TYPE<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (data == null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (shape == null || shape.length == 0) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        shape = new int[] { data.length };<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                size = ShapeUtils.calcSize(shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (size != data.length) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        Arrays.toString(shape), data.length));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                odata = this.data = data;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Copy a dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        BooleanDatasetBase(final BooleanDatasetBase dataset) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                copyToView(dataset, this, true, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                try {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (dataset.stride == null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                if (dataset.data != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        } else {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                offset = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                stride = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                base = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                odata = data = createArray(size);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                IndexIterator iter = dataset.getIterator();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                        data[i] = dataset.data[iter.index];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                } catch (Throwable t) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        throw new IllegalArgumentException(t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Copy and cast a dataset to this class type<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param dataset<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        BooleanDatasetBase(final Dataset dataset) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                copyToView(dataset, this, true, false);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                offset = 0;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                stride = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                base = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        odata = data = createArray(size);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } catch (Throwable t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        throw new IllegalArgumentException(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                IndexIterator iter = dataset.getIterator();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        data[i] = dataset.getElementBooleanAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean equals(Object obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                if (!super.equals(obj)) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        return false;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>                BooleanDatasetBase other = (BooleanDatasetBase) obj;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//              if (size == 1) // for zero-rank datasets<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator iter = getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator oiter = other.getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                return false;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return true;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public int hashCode() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return super.hashCode();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        public BooleanDatasetBase clone() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                return new BooleanDatasetBase(this);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>        /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * sequences or arrays are padded with zeros.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         *<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param obj<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @return dataset with contents given by input<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        static BooleanDatasetBase createFromObject(final Object obj) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                BooleanDatasetBase result = new BooleanDatasetBase();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                if (obj != null) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        try {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                result.odata = result.data = createArray(result.size);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        } catch (Throwable t) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                throw new IllegalArgumentException(t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        int[] pos = new int[result.shape.length];<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        result.fillData(obj, 0, pos);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                return result;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>        /**<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param shape<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a dataset filled with ones<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static BooleanDatasetBase ones(final int... shape) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return new BooleanDatasetBase(shape).fill(1);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>        @Override<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public BooleanDatasetBase fill(final Object obj) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                setDirty();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                IndexIterator iter = getIterator();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                while (iter.hasNext()) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        data[iter.index] = dv;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return this;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * This is a typed version of {@link #getBuffer()}<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * @return data buffer as linear array<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public boolean[] getData() { // PRIM_TYPE<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                return data;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>        @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        protected int getBufferLength() {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                if (data == null)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        return 0;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return data.length;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>        @Override<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        public BooleanDatasetBase getView(boolean deepCopyMetadata) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                BooleanDatasetBase view = new BooleanDatasetBase();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                view.setData();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return view;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        /**<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param index<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         *            absolute index<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @return value<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        public boolean getAbs(final int index) { // PRIM_TYPE<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return data[index];<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return false;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public double getElementDoubleAbs(final int index) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return 0;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public long getElementLongAbs(final int index) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public Object getObjectAbs(final int index) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                return data[index];<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>        @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public String getStringAbs(final int index) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                return stringFormat == null ? String.format("%b", data[index]) : // FORMAT_STRING<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        stringFormat.format(data[index]);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        /**<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         *<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param index<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         *            absolute index<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         * @param val<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *            new value<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public void setAbs(final int index, final boolean val) { // PRIM_TYPE<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                setDirty();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                data[index] = val;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>        @Override<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                setDirty();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                boolean[] dsrc = (boolean[]) src; // PRIM_TYPE<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                data[dindex] = dsrc[sindex];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>                setAbs(index, DTypeUtils.toBoolean(obj)); // FROM_OBJECT<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @return item in first position<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @since 2.0<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         */<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public boolean get() { // PRIM_TYPE<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                return data[getFirst1DIndex()];<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>        /**<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @param i<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @return item in given position<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         */<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        public boolean get(final int i) { // PRIM_TYPE<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                return data[get1DIndex(i)];<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>        /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @param i<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param j<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         * @return item in given position<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public boolean get(final int i, final int j) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return data[get1DIndex(i, j)];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>        /**<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @param pos<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in given position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         */<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        public boolean get(final int... pos) { // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                return data[get1DIndex(pos)];<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>        @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public Object getObject() {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return Boolean.valueOf(get()); // CLASS_TYPE<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>        @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public Object getObject(final int i) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return Boolean.valueOf(get(i)); // CLASS_TYPE<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>        @Override<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        public Object getObject(final int i, final int j) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return Boolean.valueOf(get(i, j)); // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>        @Override<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public Object getObject(final int... pos) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return Boolean.valueOf(get(pos)); // CLASS_TYPE<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>        @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public String getString() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return getStringAbs(getFirst1DIndex());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        @Override<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        public String getString(final int i) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return getStringAbs(get1DIndex(i));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public String getString(final int i, final int j) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return getStringAbs(get1DIndex(i, j));<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>        @Override<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        public String getString(final int... pos) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return getStringAbs(get1DIndex(pos));<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>        @Override<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public double getDouble() {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return 0;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        @Override<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        public double getDouble(final int i) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                return 0;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        }<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>        @Override<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        public double getDouble(final int i, final int j) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return 0;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>        @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        public double getDouble(final int... pos) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public float getFloat() {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                return 0;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>        @Override<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        public float getFloat(final int i) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return 0;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>        @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        public float getFloat(final int i, final int j) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                return 0;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>        @Override<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public float getFloat(final int... pos) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                return 0;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>        @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        public long getLong() {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                return 0;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>        @Override<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        public long getLong(final int i) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                return 0;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>        @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        public long getLong(final int i, final int j) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                return 0;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>        @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        public long getLong(final int... pos) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                return 0;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        }<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>        @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        public int getInt() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                return 0;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>        @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        public int getInt(final int i) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                return 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>        @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        public int getInt(final int i, final int j) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                return 0;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>        @Override<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public int getInt(final int... pos) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                return 0;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>        @Override<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        public short getShort() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                return 0;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        }<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>        @Override<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public short getShort(final int i) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                return 0;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        }<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>        @Override<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public short getShort(final int i, final int j) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                return 0;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>        @Override<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        public short getShort(final int... pos) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                return 0;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>        @Override<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        public byte getByte() {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                return 0;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>        @Override<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        public byte getByte(final int i) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                return 0;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>        @Override<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        public byte getByte(final int i, final int j) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return 0;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        @Override<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        public byte getByte(final int... pos) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return 0;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span>        @Override<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        public boolean getBoolean() {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return false;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>        @Override<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        public boolean getBoolean(final int i) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return false;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        }<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span>        @Override<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        public boolean getBoolean(final int i, final int j) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return false;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>        @Override<a name="line.535"></a>
+<span class="sourceLineNo">536</span>        public boolean getBoolean(final int... pos) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return false;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>        /**<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         *<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         * @param value<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * @since 2.0<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         */<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public void setItem(final boolean value) { // PRIM_TYPE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                setAbs(getFirst1DIndex(), value);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        }<a name="line.548"></a>
+<span class="sourceLineNo">549</span><a name="line.549"></a>
+<span class="sourceLineNo">550</span>        /**<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         *<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @param value<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param i<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public void setItem(final boolean value, final int i) { // PRIM_TYPE<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                setAbs(get1DIndex(i), value);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>        /**<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         *<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param value<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         * @param i<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         * @param j<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         */<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public void setItem(final boolean value, final int i, final int j) { // PRIM_TYPE<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                setAbs(get1DIndex(i, j), value);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        }<a name="line.569"></a>
+<span class="sourceLineNo">570</span><a name="line.570"></a>
+<span class="sourceLineNo">571</span>        /**<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * Sets the value at a particular point to the passed value<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         *<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param value<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @param pos<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public void setItem(final boolean value, final int... pos) { // PRIM_TYPE<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                setAbs(get1DIndex(pos), value);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>        @Override<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void set(final Object obj) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setItem(DTypeUtils.toBoolean(obj)); // FROM_OBJECT<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public void set(final Object obj, final int i) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                setItem(DTypeUtils.toBoolean(obj), i); // FROM_OBJECT<a name="line.588"></a>
+<span class="sourceLineNo">589</span>        }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>        @Override<a name="line.591"></a>
+<span class="sourceLineNo">592</span>        public void set(final Object obj, final int i, final int j) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                setItem(DTypeUtils.toBoolean(obj), i, j); // FROM_OBJECT<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public void set(final Object obj, int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        pos = new int[shape.length];<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setItem(DTypeUtils.toBoolean(obj), pos); // FROM_OBJECT<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        }<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>        @Override<a name="line.605"></a>
+<span class="sourceLineNo">606</span>        public void resize(int... newShape) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setDirty();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                final IndexIterator iter = getIterator();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                final boolean[] ndata; // PRIM_TYPE<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                try {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        ndata = createArray(nsize);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                } catch (Throwable t) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        throw new IllegalArgumentException(t);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        ndata[i] = data[iter.index];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>                odata = data = ndata;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                size = nsize;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                shape = newShape;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                stride = null;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                offset = 0;<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                base = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        @Override<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        public BooleanDatasetBase sort(Integer axis) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>        @Override<a name="line.634"></a>
+<span class="sourceLineNo">635</span>        public BooleanDatasetBase getUniqueItems() {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                Set&lt;Boolean&gt; set = new TreeSet&lt;Boolean&gt;(); // CLASS_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                IndexIterator it = getIterator();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                while (it.hasNext()) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        set.add(data[it.index]);<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>                BooleanDataset u = new BooleanDataset(set.size()); // CLASS_TYPE<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                int i = 0;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                boolean[] udata = u.getData(); // PRIM_TYPE<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                for (Boolean v : set) { // CLASS_TYPE<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        udata[i++] = v;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                }<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                return u;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>        }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>        @Override<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        public BooleanDatasetBase getSlice(final SliceIterator siter) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                BooleanDatasetBase result = new BooleanDatasetBase(siter.getShape());<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                boolean[] rdata = result.data; // PRIM_TYPE<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        rdata[i] = data[siter.index];<a name="line.657"></a>
+<span class="sourceLineNo">658</span><a name="line.658"></a>
+<span class="sourceLineNo">659</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                return result;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>        @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                IndexIterator riter = result.getIterator();<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                result.setDirty();<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                boolean[] rdata = ((BooleanDatasetBase) result).data; // PRIM_TYPE<a name="line.668"></a>
+<span class="sourceLineNo">669</span><a name="line.669"></a>
+<span class="sourceLineNo">670</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        rdata[riter.index] = data[iter.index];<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        }<a name="line.673"></a>
+<span class="sourceLineNo">674</span><a name="line.674"></a>
+<span class="sourceLineNo">675</span>        @Override<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        public BooleanDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                setDirty();<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                if (obj instanceof Dataset) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        final Dataset ds = (Dataset) obj;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        if (length != ds.getSize()) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                throw new IllegalArgumentException(<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.687"></a>
+<span class="sourceLineNo">688</span><a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                data[biter.index] = ds.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                } else {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.694"></a>
+<span class="sourceLineNo">695</span><a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        while (biter.hasNext()) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                data[biter.index] = dv;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                return this;<a name="line.700"></a>
+<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>        @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>        public BooleanDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                setDirty();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                if (obj instanceof Dataset) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        final Dataset ds = (Dataset) obj;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        if (index.getSize() != ds.getSize()) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                throw new IllegalArgumentException(<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                data[iter.index] = ds.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                } else {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        while (iter.hasNext()) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                data[iter.index] = dv;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                return this;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>        }<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>        @Override<a name="line.730"></a>
+<span class="sourceLineNo">731</span>        public BooleanDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                setDirty();<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                final int[] pos = iter.getPos();<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>                if (obj instanceof Dataset) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        final Dataset ds = (Dataset) obj;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                throw new IllegalArgumentException(<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        }<a name="line.741"></a>
+<span class="sourceLineNo">742</span><a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                setItem(ds.getElementBooleanAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                } else {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                        final boolean dv = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        while (iter.hasNext()) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                setItem(dv, pos);<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        }<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                }<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                return this;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        }<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>        @Override<a name="line.758"></a>
+<span class="sourceLineNo">759</span>        BooleanDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                setDirty();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.761"></a>
+<span class="sourceLineNo">762</span><a name="line.762"></a>
+<span class="sourceLineNo">763</span>                while (it.hasNext()) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        data[it.aIndex] = d.getElementBooleanAbs(it.bIndex);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                return this;<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        }<a name="line.767"></a>
+<span class="sourceLineNo">768</span><a name="line.768"></a>
+<span class="sourceLineNo">769</span>        @Override<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        public BooleanDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                setDirty();<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                if (obj instanceof IDataset) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        final IDataset ds = (IDataset) obj;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        final int[] oshape = ds.getShape();<a name="line.775"></a>
+<span class="sourceLineNo">776</span><a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                throw new IllegalArgumentException(String.format(<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                                Arrays.toString(siter.getShape())));<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        if (ds instanceof Dataset) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                final Dataset ads = (Dataset) ds;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.785"></a>
+<span class="sourceLineNo">786</span><a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        data[siter.index] = ads.getElementBooleanAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        } else {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                final int[] pos = oiter.getPos();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                        data[siter.index] = ds.getBoolean(pos); // PRIM_TYPE<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        try {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                boolean v = DTypeUtils.toBoolean(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                while (siter.hasNext())<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                        data[siter.index] = v;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        } catch (IllegalArgumentException e) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                }<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return this;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                boolean[] ddata = (boolean[]) dest.getBuffer(); // PRIM_TYPE<a name="line.811"></a>
+<span class="sourceLineNo">812</span><a name="line.812"></a>
+<span class="sourceLineNo">813</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.814"></a>
+<span class="sourceLineNo">815</span><a name="line.815"></a>
+<span class="sourceLineNo">816</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                }<a name="line.820"></a>
+<span class="sourceLineNo">821</span><a name="line.821"></a>
+<span class="sourceLineNo">822</span>                dest.setDirty();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        ddata[diter.index] = data[siter.index];<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                }<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                setDirty();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                boolean[] sdata = (boolean[]) src; // PRIM_TYPE<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        data[siter.index] = sdata[i];<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span>        private List&lt;int[]&gt; findPositions(final boolean value) { // PRIM_TYPE<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                IndexIterator iter = getIterator(true);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                int[] pos = iter.getPos();<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>                {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        while (iter.hasNext()) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                if (data[iter.index] == value) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        posns.add(pos.clone());<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        }<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                return posns;<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (max == null) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.867"></a>
+<span class="sourceLineNo">868</span><a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        md.setMaximumPositions(max);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>                return max.get(0); // first maximum<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        }<a name="line.873"></a>
+<span class="sourceLineNo">874</span><a name="line.874"></a>
+<span class="sourceLineNo">875</span>        @Override<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                if (min == null) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        md.setMinimumPositions(min);<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                }<a name="line.886"></a>
+<span class="sourceLineNo">887</span><a name="line.887"></a>
+<span class="sourceLineNo">888</span>                return min.get(0); // first minimum<a name="line.888"></a>
+<span class="sourceLineNo">889</span>        }<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>        @Override<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public boolean containsNans() {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                return false;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        }<a name="line.894"></a>
+<span class="sourceLineNo">895</span><a name="line.895"></a>
+<span class="sourceLineNo">896</span>        @Override<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        public boolean containsInfs() {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                return false;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        @Override<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        public boolean containsInvalidNumbers() {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                return false;<a name="line.903"></a>
+<span class="sourceLineNo">904</span>        }<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>        @Override<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        public BooleanDatasetBase iadd(final Object b) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                return this;<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>        @Override<a name="line.911"></a>
+<span class="sourceLineNo">912</span>        public BooleanDatasetBase isubtract(final Object b) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                return this;<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        }<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>        @Override<a name="line.916"></a>
+<span class="sourceLineNo">917</span>        public BooleanDatasetBase imultiply(final Object b) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                return this;<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        }<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>        @Override<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        public BooleanDatasetBase idivide(final Object b) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                return this;<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        @Override<a name="line.926"></a>
+<span class="sourceLineNo">927</span>        public BooleanDatasetBase ifloor() {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                return this;<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public BooleanDatasetBase iremainder(final Object b) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                return this;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>        @Override<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        public BooleanDatasetBase ipower(final Object b) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                return this;<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        }<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>        @Override<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                double sum = 0;<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                return sum;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>}<a name="line.946"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanIterator.html
new file mode 100644
index 0000000..1716f42
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanIterator.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Base class for boolean iterators for pairs of dataset where the second dataset could be broadcast to the first and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * is used to select where {{@link #hasNext()} returns true. An optional third dataset can specify the output.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * For speed, there are public members.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public abstract class BooleanIterator extends IndexIterator {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * Create a boolean iterator that stops at every position in the choice dataset with a true value<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param a primary dataset<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param c choice dataset, can be null to choose all<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @since 2.1<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public static BooleanIterator createIterator(Dataset a, Dataset c) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                return createIterator(true, a, c, null, false);<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create a boolean iterator that stops at every position in the choice dataset with a true value<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param a primary dataset<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param c choice dataset, can be null to choose all<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param o output dataset, can be null<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @since 2.1<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public static BooleanIterator createIterator(Dataset a, Dataset c, Dataset o) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                return createIterator(true, a, c, o, false);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Create a boolean iterator that stops at every position in the choice dataset where its value matches<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * the given boolean<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param v boolean value<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param a primary dataset<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param c choice dataset, can be null to choose all<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param o output dataset, can be null<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @since 2.1<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public static BooleanIterator createIterator(boolean v, Dataset a, Dataset c, Dataset o) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return createIterator(v, a, c, o, false);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a boolean iterator that stops at every position in the choice dataset where its value matches<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * the given boolean<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param v boolean value<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param a primary dataset<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param c choice dataset, can be null to choose all<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param o output dataset, can be null<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @since 2.1<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public static BooleanIterator createIterator(boolean v, Dataset a, Dataset c, Dataset o, boolean createIfNull) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                if (c == null) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        return new BooleanNullIterator(a, o, createIfNull);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                if (Arrays.equals(a.getShapeRef(), c.getShapeRef()) &amp;&amp; a.getStrides() == null &amp;&amp; c.getStrides() == null) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        if (o == null || (o.getStrides() == null &amp;&amp; Arrays.equals(a.getShapeRef(), o.getShapeRef()))) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                return new BooleanContiguousIterator(v, a, c, o, createIfNull);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return new BooleanBroadcastIterator(v, a, c, o, createIfNull);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        protected final boolean value;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * Index in choice dataset<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        public int cIndex;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Index in output dataset<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         */<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        public int oIndex;<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>        /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * Output dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        protected Dataset oDataset;<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        final protected boolean outputA;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        protected int[] maxShape;<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>        protected final int aStep; // step over items<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        protected int oStep;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        protected int aMax; // maximum index in array<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        protected int aStart, oStart;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        protected Dataset aDataset;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        protected Dataset cDataset;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @return choice<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @since 2.1<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public Dataset getChoice() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return cDataset;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public int[] getShape() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                return maxShape;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Construct a boolean iterator that stops at the given boolean value in choice dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param v boolean value<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @param a primary dataset<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @param c choice dataset<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param o output dataset, can be null<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        protected BooleanIterator(boolean v, Dataset a, Dataset c, Dataset o) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                value = v;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                aDataset = a;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                aStep = a.getElementsPerItem();<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                cDataset = c;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                oDataset = o;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                outputA = a == o;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                if (c != null &amp;&amp; c == o) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        throw new IllegalArgumentException("Output dataset must not be same as mask dataset");<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>                if (c != null) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        BroadcastUtils.checkItemSize(a, c, o);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                } else if (o != null) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        BroadcastUtils.checkItemSize(a, o);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                if (o != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        o.setDirty();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @return output dataset (can be null)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @since 2.1<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public Dataset getOutput() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                return oDataset;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>}<a name="line.154"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanNullIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanNullIterator.html
new file mode 100644
index 0000000..4e5ed16
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BooleanNullIterator.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2017 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.List;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over a single dataset with NumPy broadcasting to promote shapes<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * which have lower rank and outputs to a second dataset<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * @since 2.1<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class BooleanNullIterator extends BooleanIteratorBase {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param a<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param o (can be null for new dataset, or a)<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public BooleanNullIterator(Dataset a, Dataset o) {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                this(a, o, false);<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        }<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @param a<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param o (can be null for new dataset, or a)<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * (by default, can create float or complex datasets)<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public BooleanNullIterator(Dataset a, Dataset o, boolean createIfNull) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                this(a, o, createIfNull, false, true);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param a<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param o (can be null for new dataset, or a)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param createIfNull if true create the output dataset if that is null<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param allowInteger if true, can create integer datasets<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param allowComplex if true, can create complex datasets<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        @SuppressWarnings("deprecation")<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        public BooleanNullIterator(Dataset a, Dataset o, boolean createIfNull, boolean allowInteger, boolean allowComplex) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                super(true, a, null, o);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>                BroadcastUtils.checkItemSize(a, o);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                maxShape = fullShapes.remove(0);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>                oStride = null;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                if (o != null &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>                aShape = fullShapes.remove(0);<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>                int rank = maxShape.length;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                endrank = rank - 1;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                aDataset = a.reshape(aShape);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                if (outputA) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        oStride = aStride;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        oDelta = null;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        oStep = 0;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                } else if (o != null) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        oDelta = new int[rank];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        oStep = o.getElementsPerItem();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                } else if (createIfNull) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        int is = aDataset.getElementsPerItem();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        int dt = aDataset.getDType();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (aDataset.isComplex() &amp;&amp; !allowComplex) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                is = 1;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                dt = DTypeUtils.getBestFloatDType(dt);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        } else if (!aDataset.hasFloatingPointElements() &amp;&amp; !allowInteger) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                dt = DTypeUtils.getBestFloatDType(dt);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        oDataset = DatasetFactory.zeros(is, maxShape, dt);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        oDelta = new int[rank];<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        oStep = is;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                } else {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        oDelta = null;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        oStep = 0;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                pos = new int[rank];<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                aDelta = new int[rank];<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        if (oDelta != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                oDelta[j] = oStride[j] * maxShape[j];<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                aStart = aDataset.getOffset();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                aMax = endrank &lt; 0 ? aStep + aStart : Integer.MIN_VALUE;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                reset();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public boolean hasNext() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                int j = endrank;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                for (; j &gt;= 0; j--) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        pos[j]++;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        index += aStride[j];<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (oDelta != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                oIndex += oStride[j];<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                pos[j] = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                index -= aDelta[j]; // reset these dimensions<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                if (oDelta != null) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                        oIndex -= oDelta[j];<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        } else {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                break;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if (j == -1) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        if (endrank &gt;= 0) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                                return false;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        }<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        index += aStep;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        if (oDelta != null) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                oIndex += oStep;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                if (outputA) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        oIndex = index;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>                if (index == aMax) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        return false;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>                return true;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>        @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public void reset() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        pos[i] = 0;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                if (endrank &gt;= 0) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        pos[endrank] = -1;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        index = aStart - aStride[endrank];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                } else {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        index = aStart - aStep;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        oIndex = oStart - oStep;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>}<a name="line.163"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastIterator.html
new file mode 100644
index 0000000..61f5642
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastIterator.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Base class for broadcast iterators of pairs with output. For speed, there are public members. Note, index is not updated<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>public abstract class BroadcastIterator extends BroadcastIteratorBase {<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>        public static BroadcastIterator createIterator(Dataset a, Dataset b) {<a name="line.19"></a>
+<span class="sourceLineNo">020</span>                return createIterator(a, b, null, false);<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        }<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public static BroadcastIterator createIterator(Dataset a, Dataset b, Dataset o) {<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                return createIterator(a, b, o, false);<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        }<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public static BroadcastIterator createIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                if (Arrays.equals(a.getShapeRef(), b.getShapeRef()) &amp;&amp; a.getStrides() == null &amp;&amp; b.getStrides() == null) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                        if (o == null || (o.getStrides() == null &amp;&amp; Arrays.equals(a.getShapeRef(), o.getShapeRef()))) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                                return new ContiguousPairIterator(a, b, o, createIfNull);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                }<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                return new BroadcastPairIterator(a, b, o, createIfNull);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * Index in output dataset<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public int oIndex;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Current value in first dataset<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        public double aDouble;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Current value in first dataset<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public long aLong;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Output dataset<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        protected Dataset oDataset;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        final protected boolean outputA;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        final protected boolean outputB;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        protected BroadcastIterator(Dataset a, Dataset b, Dataset o) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                super(a, b);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                oDataset = o;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                outputA = a == o;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                outputB = b == o;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                read = DTypeUtils.isDTypeNumerical(a.getDType()) &amp;&amp; DTypeUtils.isDTypeNumerical(b.getDType());<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                asDouble = aDataset.hasFloatingPointElements() || bDataset.hasFloatingPointElements();<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                BroadcastUtils.checkItemSize(a, b, o);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (o != null) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        o.setDirty();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                }<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @return output dataset (can be null)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public Dataset getOutput() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                return oDataset;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>        @Override<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        protected void storeCurrentValues() {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                if (aIndex &gt;= 0) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (asDouble) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                aLong = aDataset.getElementLongAbs(aIndex);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                if (bIndex &gt;= 0) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        if (asDouble) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        } else {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                bLong = bDataset.getElementLongAbs(bIndex);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>}<a name="line.93"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html
new file mode 100644
index 0000000..459f30d
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastIteratorBase.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Base class for all broadcast iterators. For speed, there are public members. Note, index is not updated<a name="line.13"></a>
+<span class="sourceLineNo">014</span> */<a name="line.14"></a>
+<span class="sourceLineNo">015</span>public abstract class BroadcastIteratorBase extends IndexIterator {<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>        /**<a name="line.17"></a>
+<span class="sourceLineNo">018</span>         * Index in first dataset<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        public int aIndex;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * Index in second dataset<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        public int bIndex;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * Current value in second dataset<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public double bDouble;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * Current value in second dataset<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public long bLong;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected boolean asDouble = true;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected boolean read = true;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected int[] maxShape;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * position in dataset<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        protected int[] pos;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        protected Dataset aDataset;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        protected Dataset bDataset;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public BroadcastIteratorBase(Dataset a, Dataset b) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                aDataset = a;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                bDataset = b;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public int[] getShape() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                return maxShape;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>        @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public int[] getPos() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                return pos;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>        /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @return true if output from iterator is double<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public boolean isOutputDouble() {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                return asDouble;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * Set to output doubles<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param asDouble<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public void setOutputDouble(boolean asDouble) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                if (this.asDouble != asDouble) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        this.asDouble = asDouble;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        storeCurrentValues();<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>        /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * Read and store current values<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        abstract protected void storeCurrentValues();<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>}<a name="line.85"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html
new file mode 100644
index 0000000..e61ece1
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastPairIterator.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over a pair of datasets in parallel with NumPy broadcasting to promote shapes<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * which have lower rank and outputs to a third dataset<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class BroadcastPairIterator extends BroadcastIterator {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] aShape;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int[] bShape;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private int[] aStride;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int[] bStride;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int[] oStride;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        final private int endrank;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private final int[] aDelta, bDelta;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private final int[] oDelta; // this being non-null means output is different from inputs<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        private final int aStep, bStep, oStep;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private int aMax, bMax;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private int aStart, bStart, oStart;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * <a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param a<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param b<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param o (can be null for new dataset, a or b)<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param createIfNull<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public BroadcastPairIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                super(a, b, o);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), b.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>                maxShape = fullShapes.remove(0);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>                oStride = null;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (o != null &amp;&amp; !Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                aShape = fullShapes.remove(0);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                bShape = fullShapes.remove(0);<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int rank = maxShape.length;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                endrank = rank - 1;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                aDataset = a.reshape(aShape);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                bDataset = b.reshape(bShape);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                bStride = BroadcastUtils.createBroadcastStrides(bDataset, maxShape);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (outputA) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        oStride = aStride;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        oDelta = null;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        oStep = 0;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                } else if (outputB) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        oStride = bStride;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        oDelta = null;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        oStep = 0;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                } else if (o != null) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        oDelta = new int[rank];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        oStep = o.getElementsPerItem();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                } else if (createIfNull) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        oDataset = BroadcastUtils.createDataset(a, b, maxShape);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        oDelta = new int[rank];<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        oStep = oDataset.getElementsPerItem();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        oDelta = null;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        oStep = 0;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                pos = new int[rank];<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                aDelta = new int[rank];<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                aStep = aDataset.getElementsPerItem();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                bDelta = new int[rank];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                bStep = bDataset.getElementsPerItem();<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        bDelta[j] = bStride[j] * bShape[j];<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        if (oDelta != null) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                oDelta[j] = oStride[j] * maxShape[j];<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                aStart = aDataset.getOffset();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                bStart = bDataset.getOffset();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                bMax = endrank &lt; 0 ? bStep + bStart: Integer.MIN_VALUE;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                reset();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public boolean hasNext() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                int j = endrank;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                int oldA = aIndex;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                int oldB = bIndex;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                for (; j &gt;= 0; j--) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        pos[j]++;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        aIndex += aStride[j];<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        bIndex += bStride[j];<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (oDelta != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                oIndex += oStride[j];<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                pos[j] = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                bIndex -= bDelta[j];<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                if (oDelta != null) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                        oIndex -= oDelta[j];<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        } else {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                break;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                if (j == -1) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        if (endrank &gt;= 0) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                return false;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        aIndex += aStep;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        bIndex += bStep;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        if (oDelta != null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                oIndex += oStep;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                if (outputA) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        oIndex = aIndex;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                } else if (outputB) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        oIndex = bIndex;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (aIndex == aMax || bIndex == bMax) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        return false;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>                if (read) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        if (oldA != aIndex) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                if (asDouble) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                        aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                } else {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                        aLong = aDataset.getElementLongAbs(aIndex);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        if (oldB != bIndex) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                if (asDouble) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                        bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                        bLong = bDataset.getElementLongAbs(bIndex);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                return true;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        /**<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @return shape of first broadcasted dataset<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public int[] getFirstShape() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return aShape;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        /**<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         * @return shape of second broadcasted dataset<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         */<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public int[] getSecondShape() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return bShape;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        public void reset() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                for (int i = 0; i &lt;= endrank; i++)<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        pos[i] = 0;<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>                if (endrank &gt;= 0) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        pos[endrank] = -1;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        aIndex = aStart - aStride[endrank];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        bIndex = bStart - bStride[endrank];<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                } else {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        aIndex = aStart - aStep;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        bIndex = bStart - bStep;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        oIndex = oStart - oStep;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (aIndex == 0 || bIndex == 0) { // for zero-ranked datasets<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        if (read) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                storeCurrentValues();<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>}<a name="line.205"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html
new file mode 100644
index 0000000..d4d6be8
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastSelfIterator.html
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Base class for broadcast iterators where the second dataset could be broadcast to the first and it is also read into either bLong or bDouble fields.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * For speed, there are public members. Note, index is not updated<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public abstract class BroadcastSelfIterator extends BroadcastIteratorBase {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        public static BroadcastSelfIterator createIterator(Dataset a, Dataset b) {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>                if (Arrays.equals(a.getShapeRef(), b.getShapeRef()) &amp;&amp; a.getStrides() == null &amp;&amp; b.getStrides() == null) {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>                        return new ContiguousSingleIterator(a, b);<a name="line.22"></a>
+<span class="sourceLineNo">023</span>                }<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                return new BroadcastSingleIterator(a, b);<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        }<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        protected BroadcastSelfIterator(Dataset a, Dataset b) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                super(a, b);<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                read = DTypeUtils.isDTypeNumerical(b.getDType());<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                asDouble = aDataset.hasFloatingPointElements();<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                BroadcastUtils.checkItemSize(a, b, null);<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        }<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        @Override<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected void storeCurrentValues() {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                if (bIndex &gt;= 0) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                        if (asDouble) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        } else {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                                bLong = bDataset.getElementLongAbs(bIndex);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>}<a name="line.44"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html
new file mode 100644
index 0000000..618085c
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastSingleIterator.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.List;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Class to run over a pair of datasets in parallel with NumPy broadcasting of second dataset<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>public class BroadcastSingleIterator extends BroadcastSelfIterator {<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private int[] bShape;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        private int[] aStride;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        private int[] bStride;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int endrank;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private final int[] aDelta, bDelta;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private final int aStep, bStep;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int aMax, bMax;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int aStart, bStart;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * <a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @param a<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param b<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public BroadcastSingleIterator(Dataset a, Dataset b) {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                super(a, b);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                int[] aShape = a.getShapeRef();<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                maxShape = aShape;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapesToMax(maxShape, b.getShapeRef());<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                bShape = fullShapes.remove(0);<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>                int rank = maxShape.length;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                endrank = rank - 1;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>                bDataset = b.reshape(bShape);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                int[] aOffset = new int[1];<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                aStride = AbstractDataset.createStrides(aDataset, aOffset);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                bStride = BroadcastUtils.createBroadcastStrides(bDataset, maxShape);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>                pos = new int[rank];<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                aDelta = new int[rank];<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                aStep = aDataset.getElementsPerItem();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                bDelta = new int[rank];<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                bStep = bDataset.getElementsPerItem();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        bDelta[j] = bStride[j] * bShape[j];<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                aStart = aOffset[0];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                bStart = bDataset.getOffset();<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                bMax = endrank &lt; 0 ? bStep + bStart: Integer.MIN_VALUE;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                reset();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public boolean hasNext() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                int j = endrank;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                int oldB = bIndex;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                for (; j &gt;= 0; j--) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        pos[j]++;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        aIndex += aStride[j];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        bIndex += bStride[j];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                pos[j] = 0;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                bIndex -= bDelta[j];<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                break;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                if (j == -1) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        if (endrank &gt;= 0) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                return false;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        aIndex += aStep;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        bIndex += bStep;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (aIndex == aMax || bIndex == bMax) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return false;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (read) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        if (oldB != bIndex) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                if (asDouble) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                        bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                } else {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        bLong = bDataset.getElementLongAbs(bIndex);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                return true;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @return shape of first broadcasted dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public int[] getFirstShape() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return maxShape;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @return shape of second broadcasted dataset<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public int[] getSecondShape() {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                return bShape;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        public void reset() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                for (int i = 0; i &lt;= endrank; i++)<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        pos[i] = 0;<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>                if (endrank &gt;= 0) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        pos[endrank] = -1;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        aIndex = aStart - aStride[endrank];<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        bIndex = bStart - bStride[endrank];<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } else {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        aIndex = aStart - aStep;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        bIndex = bStart - bStep;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>                if (aIndex == 0 || bIndex == 0) { // for zero-ranked datasets<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        if (read) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                storeCurrentValues();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>}<a name="line.141"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastUtils.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastUtils.html
new file mode 100644
index 0000000..e97ac33
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/BroadcastUtils.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.ArrayList;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.Arrays;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.List;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>public final class BroadcastUtils {<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>        /**<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * Calculate shapes for broadcasting<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         * @param oldShape<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param size<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param newShape<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return broadcasted shape and full new shape or null if it cannot be done<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        public static int[][] calculateBroadcastShapes(int[] oldShape, int size, int... newShape) {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                if (newShape == null)<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                        return null;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        <a name="line.28"></a>
+<span class="sourceLineNo">029</span>                int brank = newShape.length;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                if (brank == 0) {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                        if (size == 1)<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                return new int[][] {oldShape, newShape};<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        return null;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                }<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        <a name="line.35"></a>
+<span class="sourceLineNo">036</span>                if (Arrays.equals(oldShape, newShape))<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                        return new int[][] {oldShape, newShape};<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        <a name="line.38"></a>
+<span class="sourceLineNo">039</span>                int offset = brank - oldShape.length;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                if (offset &lt; 0) { // when new shape is incomplete<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        newShape = padShape(newShape, -offset);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                        offset = 0;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        <a name="line.44"></a>
+<span class="sourceLineNo">045</span>                int[] bshape;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                if (offset &gt; 0) { // new shape has extra dimensions<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        bshape = padShape(oldShape, offset);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                } else {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        bshape = oldShape;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        <a name="line.51"></a>
+<span class="sourceLineNo">052</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        if (newShape[i] != bshape[i] &amp;&amp; bshape[i] != 1 &amp;&amp; newShape[i] != 1) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                                return null;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        }<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        <a name="line.57"></a>
+<span class="sourceLineNo">058</span>                return new int[][] {bshape, newShape};<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * Pad shape by prefixing with ones<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param shape<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param padding<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @return new shape or old shape if padding is zero<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public static int[] padShape(final int[] shape, final int padding) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                if (padding &lt; 0)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        throw new IllegalArgumentException("Padding must be zero or greater");<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        <a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (padding == 0)<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        return shape;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        <a name="line.73"></a>
+<span class="sourceLineNo">074</span>                final int[] nshape = new int[shape.length + padding];<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                Arrays.fill(nshape, 1);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                System.arraycopy(shape, 0, nshape, padding, shape.length);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                return nshape;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>        /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * Take in shapes and broadcast them to same rank<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @param shapes<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * @return list of broadcasted shapes plus the first entry is the maximum shape<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        public static List&lt;int[]&gt; broadcastShapes(int[]... shapes) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                int maxRank = -1;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                for (int[] s : shapes) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        if (s == null)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                continue;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        <a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        int r = s.length;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        if (r &gt; maxRank) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                maxRank = r;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        <a name="line.96"></a>
+<span class="sourceLineNo">097</span>                List&lt;int[]&gt; newShapes = new ArrayList&lt;int[]&gt;();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                for (int[] s : shapes) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        if (s == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                continue;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        newShapes.add(padShape(s, maxRank - s.length));<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        <a name="line.103"></a>
+<span class="sourceLineNo">104</span>                int[] maxShape = new int[maxRank];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                for (int i = 0; i &lt; maxRank; i++) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        int m = -1;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        for (int[] s : newShapes) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                int l = s[i];<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                if (l &gt; m) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        if (m &gt; 1) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                                throw new IllegalArgumentException("A shape's dimension was not one or equal to maximum");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                        m = l;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        maxShape[i] = m;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>                checkShapes(maxShape, newShapes);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                newShapes.add(0, maxShape);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return newShapes;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * Take in shapes and broadcast them to maximum shape<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * @param maxShape<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @param shapes<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @return list of broadcasted shapes<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public static List&lt;int[]&gt; broadcastShapesToMax(int[] maxShape, int[]... shapes) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                int maxRank = maxShape.length;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                for (int[] s : shapes) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        if (s == null)<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                continue;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        <a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        int r = s.length;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        if (r &gt; maxRank) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                                throw new IllegalArgumentException("A shape exceeds given rank of maximum shape");<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        <a name="line.141"></a>
+<span class="sourceLineNo">142</span>                List&lt;int[]&gt; newShapes = new ArrayList&lt;int[]&gt;();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                for (int[] s : shapes) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        if (s == null)<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                continue;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        newShapes.add(padShape(s, maxRank - s.length));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>                checkShapes(maxShape, newShapes);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return newShapes;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        private static void checkShapes(int[] maxShape, List&lt;int[]&gt; newShapes) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                for (int i = 0; i &lt; maxShape.length; i++) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        int m = maxShape[i];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        for (int[] s : newShapes) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                int l = s[i];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                if (l != 1 &amp;&amp; l != m) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                        throw new IllegalArgumentException("A shape's dimension was not one or equal to maximum");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>        @SuppressWarnings("deprecation")<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        static Dataset createDataset(final Dataset a, final Dataset b, final int[] shape) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                final int rt;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                final int ar = a.getRank();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                final int br = b.getRank();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                final int tt = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (ar == 0 ^ br == 0) { // ignore type of zero-rank dataset unless it's floating point <a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        if (ar == 0) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                rt = a.hasFloatingPointElements() ? tt : b.getDType();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        } else {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                rt = b.hasFloatingPointElements() ? tt : a.getDType();<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                } else {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        rt = tt;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                final int ia = a.getElementsPerItem();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                final int ib = b.getElementsPerItem();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        <a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return DatasetFactory.zeros(ia &gt; ib ? ia : ib, shape, rt);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Check if dataset item sizes are compatible<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * &lt;p&gt;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * Dataset a is considered compatible with the output dataset if any of the<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * conditions are true:<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * &lt;ul&gt;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * &lt;li&gt;o is undefined&lt;/li&gt;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * &lt;li&gt;a has item size equal to o's&lt;/li&gt;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * &lt;li&gt;a has item size equal to 1&lt;/li&gt;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * &lt;li&gt;o has item size equal to 1&lt;/li&gt;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * &lt;/ul&gt;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @param a input dataset a<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * @param o output dataset (can be null)<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         */<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        static void checkItemSize(Dataset a, Dataset o) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                final int isa = a.getElementsPerItem();<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                if (o != null) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        final int iso = o.getElementsPerItem();<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        if (isa != iso &amp;&amp; isa != 1 &amp;&amp; iso != 1) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                throw new IllegalArgumentException("Can not output to dataset whose number of elements per item mismatch inputs'");<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        /**<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * Check if dataset item sizes are compatible<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * &lt;p&gt;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * Dataset a is considered compatible with the output dataset if any of the<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * conditions are true:<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * &lt;ul&gt;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * &lt;li&gt;a has item size equal to b's&lt;/li&gt;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * &lt;li&gt;a has item size equal to 1&lt;/li&gt;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * &lt;li&gt;b has item size equal to 1&lt;/li&gt;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * &lt;li&gt;a or b are single-valued&lt;/li&gt;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * &lt;/ul&gt;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * and, o is undefined, or any of the following are true:<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * &lt;ul&gt;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * &lt;li&gt;o has item size equal to maximum of a and b's&lt;/li&gt;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * &lt;li&gt;o has item size equal to 1&lt;/li&gt;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * &lt;li&gt;a and b have item sizes of 1&lt;/li&gt;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * &lt;/ul&gt;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @param a input dataset a<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param b input dataset b<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param o output dataset<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        static void checkItemSize(Dataset a, Dataset b, Dataset o) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                final int isa = a.getElementsPerItem();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                final int isb = b.getElementsPerItem();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                if (isa != isb &amp;&amp; isa != 1 &amp;&amp; isb != 1) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        // exempt single-value dataset case too<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        if ((isa == 1 || b.getSize() != 1) &amp;&amp; (isb == 1 || a.getSize() != 1) ) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                throw new IllegalArgumentException("Can not broadcast where number of elements per item mismatch and one does not equal another");<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                if (o != null &amp;&amp; o.getDType() != Dataset.BOOL) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        final int ism = Math.max(isa, isb);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        final int iso = o.getElementsPerItem();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        if (iso != ism &amp;&amp; iso != 1 &amp;&amp; ism != 1) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                throw new IllegalArgumentException("Can not output to dataset whose number of elements per item mismatch inputs'");<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>        /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * Create a stride array from a dataset to a broadcast shape<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param a dataset<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @param broadcastShape<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @return stride array<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        public static int[] createBroadcastStrides(Dataset a, final int[] broadcastShape) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return createBroadcastStrides(a.getElementsPerItem(), a.getShapeRef(), a.getStrides(), broadcastShape);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        /**<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * Create a stride array from a dataset to a broadcast shape<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param isize<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @param oShape original shape<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param oStride original stride<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @param broadcastShape<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @return stride array<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        public static int[] createBroadcastStrides(final int isize, final int[] oShape, final int[] oStride, final int[] broadcastShape) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                int rank = oShape.length;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                if (broadcastShape.length != rank) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        throw new IllegalArgumentException("Dataset must have same rank as broadcast shape");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        <a name="line.272"></a>
+<span class="sourceLineNo">273</span>                int[] stride = new int[rank];<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                if (oStride == null) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        int s = isize;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                        for (int j = rank - 1; j &gt;= 0; j--) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                if (broadcastShape[j] == oShape[j]) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                        stride[j] = s;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                        s *= oShape[j];<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                } else {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                        stride[j] = 0;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                }<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                } else {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        for (int j = 0; j &lt; rank; j++) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                if (broadcastShape[j] == oShape[j]) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                        stride[j] = oStride[j];<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                } else {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                        stride[j] = 0;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                }<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        <a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return stride;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        /**<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * Converts and broadcast all objects as datasets of same shape<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param objects<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return all as broadcasted to same shape<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static Dataset[] convertAndBroadcast(Object... objects) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                final int n = objects.length;<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>                Dataset[] datasets = new Dataset[n];<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                int[][] shapes = new int[n][];<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                for (int i = 0; i &lt; n; i++) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        Dataset d = DatasetFactory.createFromObject(objects[i]);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        datasets[i] = d;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        shapes[i] = d.getShapeRef();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>                List&lt;int[]&gt; nShapes = BroadcastUtils.broadcastShapes(shapes);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                int[] mshape = nShapes.get(0);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                for (int i = 0; i &lt; n; i++) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        datasets[i] = datasets[i].getBroadcastView(mshape);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return datasets;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>}<a name="line.321"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ByteDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ByteDataset.html
new file mode 100644
index 0000000..3ee525c
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ByteDataset.html
@@ -0,0 +1,1338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for byte values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class ByteDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected byte[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (byte[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static byte[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                byte[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new byte[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT8; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        ByteDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        ByteDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        ByteDataset(final byte[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        ByteDataset(final ByteDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        ByteDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (byte) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (!super.equals(obj)) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                ByteDataset other = (ByteDataset) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//              if (size == 1) // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator iter = getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                IndexIterator oiter = other.getIterator();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                return false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return true;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int hashCode() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return super.hashCode();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public ByteDataset clone() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return new ByteDataset(this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * sequences or arrays are padded with zeros.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param obj<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return dataset with contents given by input<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static ByteDataset createFromObject(final Object obj) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                ByteDataset result = new ByteDataset();<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (obj != null) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                result.odata = result.data = createArray(result.size);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } catch (Throwable t) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                throw new IllegalArgumentException(t);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] pos = new int[result.shape.length];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        result.fillData(obj, 0, pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return result;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param stop<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        static ByteDataset createRange(final double stop) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return createRange(0, stop, 1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        <a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param start<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param stop<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param step<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        static ByteDataset createRange(final double start, final double stop, final double step) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int size = calcSteps(start, stop, step);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                ByteDataset result = new ByteDataset(size);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                for (int i = 0; i &lt; size; i++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        result.data[i] = (byte) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param shape<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return a dataset filled with ones<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        static ByteDataset ones(final int... shape) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return new ByteDataset(shape).fill(1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public ByteDataset fill(final Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                setDirty();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                IndexIterator iter = getIterator();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                while (iter.hasNext()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        data[iter.index] = dv;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return this;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * This is a typed version of {@link #getBuffer()}<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return data buffer as linear array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public byte[] getData() { // PRIM_TYPE<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return data;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        @Override<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        protected int getBufferLength() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (data == null)<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return data.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public ByteDataset getView(boolean deepCopyMetadata) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                ByteDataset view = new ByteDataset();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                view.setData();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return view;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param index<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            absolute index<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return value<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         */<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public byte getAbs(final int index) { // PRIM_TYPE<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return data[index];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public double getElementDoubleAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index]; // BOOLEAN_ZERO<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public long getElementLongAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public Object getObjectAbs(final int index) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return data[index];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public String getStringAbs(final int index) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        stringFormat.format(data[index]);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param index<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            absolute index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param val<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         *            new value<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public void setAbs(final int index, final byte val) { // PRIM_TYPE<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                setDirty();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                data[index] = val;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                setDirty();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                byte[] dsrc = (byte[]) src; // PRIM_TYPE<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                data[dindex] = dsrc[sindex];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>                setAbs(index, (byte) DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in first position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @since 2.0<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public byte get() { // PRIM_TYPE<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return data[getFirst1DIndex()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param i<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in given position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public byte get(final int i) { // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return data[get1DIndex(i)];<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @param i<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param j<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public byte get(final int i, final int j) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return data[get1DIndex(i, j)];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param pos<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public byte get(final int... pos) { // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return data[get1DIndex(pos)];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Byte.valueOf(get()); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int i) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Byte.valueOf(get(i)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public Object getObject(final int i, final int j) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return Byte.valueOf(get(i, j)); // CLASS_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public Object getObject(final int... pos) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return Byte.valueOf(get(pos)); // CLASS_TYPE<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString() {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(getFirst1DIndex());<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int i) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(i));<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public String getString(final int i, final int j) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return getStringAbs(get1DIndex(i, j));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public String getString(final int... pos) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return getStringAbs(get1DIndex(pos));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get(); // BOOLEAN_ZERO<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int i) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get(i); // BOOLEAN_ZERO<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double getDouble(final int i, final int j) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return get(i, j); // BOOLEAN_ZERO<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public double getDouble(final int... pos) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return get(pos); // BOOLEAN_ZERO<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>        @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public float getFloat() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int i) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public float getFloat(final int i, final int j) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public float getFloat(final int... pos) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int i) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public long getLong(final int i, final int j) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public long getLong(final int... pos) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt() {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int i) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int getInt(final int i, final int j) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public int getInt(final int... pos) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int i) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getShort(final int i, final int j) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public short getShort(final int... pos) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int i) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public byte getByte(final int i, final int j) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public byte getByte(final int... pos) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public boolean getBoolean(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return get(i, j) != 0; // BOOLEAN_FALSE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public boolean getBoolean(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return get(pos) != 0; // BOOLEAN_FALSE<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @since 2.0<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final byte value) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(getFirst1DIndex(), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void setItem(final byte value, final int i) { // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setAbs(get1DIndex(i), value);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         *<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param value<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param i<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param j<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final byte value, final int i, final int j) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(i, j), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * Sets the value at a particular point to the passed value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         *<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @param value<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param pos<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void setItem(final byte value, final int... pos) { // PRIM_TYPE<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setAbs(get1DIndex(pos), value);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem((byte) DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, final int i) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                setItem((byte) DTypeUtils.toLong(obj), i); // FROM_OBJECT<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        @Override<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void set(final Object obj, final int i, final int j) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                setItem((byte) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public void set(final Object obj, int... pos) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        pos = new int[shape.length];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                setItem((byte) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public void resize(int... newShape) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                setDirty();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final IndexIterator iter = getIterator();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                final byte[] ndata; // PRIM_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                try {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ndata = createArray(nsize);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } catch (Throwable t) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        throw new IllegalArgumentException(t);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        ndata[i] = data[iter.index];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span>                odata = data = ndata;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                size = nsize;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                shape = newShape;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                stride = null;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                offset = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                base = null;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        @Override<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public ByteDataset sort(Integer axis) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                setDirty();<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (axis == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        if (stride == null) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                Arrays.sort(data);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        } else {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                ByteDataset ads = clone().sort(null);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                setSlicedView(getView(false), ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                } else {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        axis = checkAxis(axis);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        <a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        ByteDataset ads = new ByteDataset(shape[axis]);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        int[] pos = pi.getPos();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        boolean[] hit = pi.getOmit();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        while (pi.hasNext()) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                Arrays.sort(ads.data);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                return this;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public ByteDataset getUniqueItems() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                Set&lt;Byte&gt; set = new TreeSet&lt;Byte&gt;(); // CLASS_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                IndexIterator it = getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        set.add(data[it.index]);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                ByteDataset u = new ByteDataset(set.size()); // CLASS_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                byte[] udata = u.getData(); // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                for (Byte v : set) { // CLASS_TYPE<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        udata[i++] = v;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return u;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>        @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        public ByteDataset getSlice(final SliceIterator siter) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                ByteDataset result = new ByteDataset(siter.getShape());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                byte[] rdata = result.data; // PRIM_TYPE<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        rdata[i] = data[siter.index];<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                result.setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                byte[] rdata = ((ByteDataset) result).data; // PRIM_TYPE<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        rdata[riter.index] = data[iter.index];<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public ByteDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                setDirty();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (obj instanceof Dataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final Dataset ds = (Dataset) obj;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (length != ds.getSize()) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                throw new IllegalArgumentException(<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[biter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (biter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[biter.index] = dv;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                return this;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        public ByteDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                if (obj instanceof Dataset) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        final Dataset ds = (Dataset) obj;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        if (index.getSize() != ds.getSize()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                throw new IllegalArgumentException(<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                data[iter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        while (iter.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                data[iter.index] = dv;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return this;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public ByteDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                setDirty();<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final int[] pos = iter.getPos();<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                if (obj instanceof Dataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        final Dataset ds = (Dataset) obj;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                throw new IllegalArgumentException(<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                setItem((byte) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final byte dv = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        while (iter.hasNext()) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                setItem(dv, pos);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return this;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        ByteDataset setSlicedView(Dataset view, Dataset d) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                setDirty();<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public ByteDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                if (obj instanceof IDataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final IDataset ds = (IDataset) obj;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final int[] oshape = ds.getShape();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException(String.format(<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                                Arrays.toString(siter.getShape())));<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (ds instanceof Dataset) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final Dataset ads = (Dataset) ds;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        data[siter.index] = (byte) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                final int[] pos = oiter.getPos();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[siter.index] = ds.getByte(pos); // PRIM_TYPE<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                } else {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                byte v = (byte) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (siter.hasNext())<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        data[siter.index] = v;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } catch (IllegalArgumentException e) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                return this;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Override<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                byte[] ddata = (byte[]) dest.getBuffer(); // PRIM_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                dest.setDirty();<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        ddata[diter.index] = data[siter.index];<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        @Override<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                setDirty();<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                byte[] sdata = (byte[]) src; // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        data[siter.index] = sdata[i];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        private List&lt;int[]&gt; findPositions(final byte value) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                IndexIterator iter = getIterator(true);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] pos = iter.getPos();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        while (iter.hasNext()) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                if (data[iter.index] == value) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        posns.add(pos.clone());<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                return posns;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>        @Override<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>                if (max == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        max = findPositions(md.getMaximum(ignoreInvalids).byteValue()); // PRIM_TYPE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        md.setMaximumPositions(max);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return max.get(0); // first maximum<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        @Override<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>                if (min == null) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        min = findPositions(md.getMinimum(ignoreInvalids).byteValue()); // PRIM_TYPE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span><a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        md.setMinimumPositions(min);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return min.get(0); // first minimum<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>        @Override<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        public boolean containsNans() {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                return false;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public boolean containsInfs() {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                return false;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>        @Override<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        public boolean containsInvalidNumbers() {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                return false;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>        @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        public ByteDataset iadd(final Object b) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setDirty();<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                if (bds.getSize() == 1) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        final IndexIterator it = getIterator();<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        final int bOffset = bds.getOffset();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        if (useLong) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                while (it.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        data[it.index] += lb;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        } else {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                while (it.hasNext()) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        data[it.index] += db;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } else {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        it.setOutputDouble(!useLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (useLong) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                while (it.hasNext()) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        data[it.aIndex] += it.bLong;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        } else {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                while (it.hasNext()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        data[it.aIndex] += it.bDouble;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        }<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return this;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        @Override<a name="line.993"></a>
+<span class="sourceLineNo">994</span>        public ByteDataset isubtract(final Object b) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                setDirty();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                if (bds.getSize() == 1) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        final IndexIterator it = getIterator();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        final int bOffset = bds.getOffset();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        if (useLong) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                while (it.hasNext()) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        data[it.index] -= lb;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        } else {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        data[it.index] -= db;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                } else {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        if (useLong) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                it.setOutputDouble(false);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                while (it.hasNext()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        } else {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                it.setOutputDouble(true);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                while (it.hasNext()) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        data[it.aIndex] -= it.bDouble;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return this;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        @Override<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>        public ByteDataset imultiply(final Object b) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                setDirty();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (bds.getSize() == 1) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        final IndexIterator it = getIterator();<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        final int bOffset = bds.getOffset();<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        if (useLong) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                while (it.hasNext()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        data[it.index] *= lb;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        } else {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        data[it.index] *= db;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                } else {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        it.setOutputDouble(!useLong);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        if (useLong) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        } else {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                while (it.hasNext()) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                        data[it.aIndex] *= it.bDouble;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                }<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        }<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                return this;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public ByteDataset idivide(final Object b) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                if (bds.getSize() == 1) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        final int bOffset = bds.getOffset();<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        if (useLong) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                if (lb == 0) { // INT_USE<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                        fill(0); // INT_USE<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } else { // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                final IndexIterator it = getIterator();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        data[it.index] /= lb;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        } else {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                if (db == 0) { // INT_USE<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        fill(0); // INT_USE<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } else { // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                final IndexIterator it = getIterator();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        data[it.index] /= db;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                } // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        }<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                } else {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        it.setOutputDouble(!useLong);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        if (useLong) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                while (it.hasNext()) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                        } else { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        } // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        } else {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                while (it.hasNext()) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        } else { // INT_USE<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                        } // INT_USE<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                return this;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span><a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        @Override<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        public ByteDataset ifloor() {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                return this;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>        }<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        @Override<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        public ByteDataset iremainder(final Object b) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                setDirty();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                if (bds.getSize() == 1) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        final int bOffset = bds.getOffset();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        if (useLong) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                if (lb == 0) { // INT_USE<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        fill(0); // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                } else { // INT_USE<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final IndexIterator it = getIterator();<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                while (it.hasNext()) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        data[it.index] %= lb;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                } // INT_USE<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        } else {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                if (lb == 0) { // INT_USE<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        fill(0); // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                } else { // INT_USE<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                final IndexIterator it = getIterator();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                while (it.hasNext()) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        data[it.index] %= lb;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                } // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                } else {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        it.setOutputDouble(!useLong);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        if (useLong) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                while (it.hasNext()) {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                } catch (ArithmeticException e) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        data[it.aIndex] = 0;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                while (it.hasNext()) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        data[it.aIndex] %= it.bDouble;<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                return this;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span><a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        @Override<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        public ByteDataset ipower(final Object b) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                if (bds.getSize() == 1) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        final int bOffset = bds.getOffset();<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        final IndexIterator it = getIterator();<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (bds.isComplex()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                if (vi == 0) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                        while (it.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                                } else { // INT_USE<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                                data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                                } // INT_USE<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                } else {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                        while (it.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                                } else { // INT_USE<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                                } // INT_USE<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        } else {// NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                while (it.hasNext()) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                                data[it.index] = 0; // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        } else { // INT_USE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        data[it.index] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        } // INT_USE<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                }<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                } else {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        it.setOutputDouble(true);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (bds.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        } else { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        } else {// NAN_OMIT<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (it.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        } else { // INT_USE<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        } // INT_USE<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                }<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                }<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                return this;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span><a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>        @Override<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                it.setOutputDouble(true);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                double sum = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                double comp = 0;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        if (w == null) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                while (it.hasNext()) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        final double err = diff * diff - comp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                        final double temp = sum + err;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                        comp = (temp - sum) - err;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        sum = temp;<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        } else {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                IndexIterator itw = w.getIterator();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        final double temp = sum + err;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                        comp = (temp - sum) - err;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        sum = temp;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                }<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                return sum;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>}<a name="line.1266"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CollectionStats.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CollectionStats.html
new file mode 100644
index 0000000..9fd3883
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CollectionStats.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Collection;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Iterator;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.List;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * Statistics of data set lists. Used for image processing.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>public class CollectionStats {<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private static interface StatFunction {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                double evaluate(Dataset set);<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        }<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * Used to get a mean image from a set of images for instance.<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * <a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param sets<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @return mean data set of the same shape as those passed in.<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @throws Exception<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public static Dataset mean(final List&lt;IDataset&gt; sets) throws Exception {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                <a name="line.37"></a>
+<span class="sourceLineNo">038</span>                return process(sets, new StatFunction() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        @Override<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        public double evaluate(Dataset set) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                                return (Double)set.mean();<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                });<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        }<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        <a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Used to get a median image from a set of images for instance.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * <a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param sets<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @return median data set of the same shape as those passed in.<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @throws Exception<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public static Dataset median(final List&lt;IDataset&gt; sets) throws Exception {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                <a name="line.54"></a>
+<span class="sourceLineNo">055</span>                return process(sets, new StatFunction() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        public double evaluate(Dataset set) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                return (Double)Stats.median(set);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                });<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        /**<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * Used to get a median image from a set of images for instance.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * <a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param sets<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @return median data set of the same shape as those passed in.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @throws Exception<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        private static Dataset process(final List&lt;IDataset&gt; sets,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                                       final StatFunction   function) throws Exception {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                <a name="line.72"></a>
+<span class="sourceLineNo">073</span>                int[] shape = assertShapes(sets);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                final DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, shape);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        final double[] rData = result.getData();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        final IndexIterator iter = new PositionIterator(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        final int[] pos = iter.getPos();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        final int len = sets.size();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                final DoubleDataset pixel = DatasetFactory.zeros(DoubleDataset.class, len);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                final double[] pData = pixel.getData();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        for (int i = 0; iter.hasNext(); i++) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        for (int ipix = 0; ipix &lt; len; ipix++) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                pData[ipix] = sets.get(ipix).getDouble(pos);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        pixel.setDirty();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        rData[i] = function.evaluate(pixel);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        <a name="line.89"></a>
+<span class="sourceLineNo">090</span>        return result;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>        private static int[] assertShapes(final Collection&lt;IDataset&gt; sets) throws Exception{<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                <a name="line.94"></a>
+<span class="sourceLineNo">095</span>                if (sets.size()&lt;2) throw new Exception("You must take the median of at least two sets!");<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                <a name="line.96"></a>
+<span class="sourceLineNo">097</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                final int[] shape = it.next().getShape();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                while (it.hasNext()) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        IDataset d = it.next();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        final int[] nextShape = d.getShape();<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        if (!Arrays.equals(shape, nextShape)) throw new Exception("All data sets should be the same shape!");<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                return shape;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>}<a name="line.106"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html
new file mode 100644
index 0000000..611d354
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Comparisons.Monotonicity.html
@@ -0,0 +1,1839 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Comparison and logical methods<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class Comparisons {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Compare item-wise for whether a's element is equal b's<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * &lt;p&gt;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * of the dataset with smaller items is used for comparison.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return dataset where item is true if a == b<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public static BooleanDataset equalTo(Object a, Object b) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                return equalTo(a, b, null);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * Compare item-wise for whether a's element is equal b's<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * &lt;p&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * of the dataset with smaller items is used for comparison.<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param a<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param b<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @return dataset where item is true if a == b<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public static BooleanDataset equalTo(Object a, Object b, BooleanDataset o) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                final int as = da.getElementsPerItem();<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                final int bs = db.getElementsPerItem();<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                if (as &gt; bs) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        if (da.isComplex()) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                while (it.hasNext()) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                                        final double bd = it.bDouble;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                                        boolean rb = it.aDouble == bd &amp;&amp; da.getElementDoubleAbs(it.aIndex + 1) == 0;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                        r.setAbs(it.oIndex, rb);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        } else if (it.isOutputDouble()) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                while (it.hasNext()) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                        final double bd = it.bDouble;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                                        boolean rb = true;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == bd;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                        r.setAbs(it.oIndex, rb);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        } else {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                while (it.hasNext()) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                        final long bl = it.bLong;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        boolean rb = true;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) == bl;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                        r.setAbs(it.oIndex, rb);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                } else if (as &lt; bs) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        if (db.isComplex()) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                while (it.hasNext()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                        final double ad = it.aDouble;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                        boolean rb = ad == it.bDouble &amp;&amp; 0 == db.getElementDoubleAbs(it.bIndex + 1);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                        r.setAbs(it.oIndex, rb);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        } else if (it.isOutputDouble()) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                while (it.hasNext()) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                        final double ad = it.aDouble;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                        boolean rb = true;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                                rb &amp;= ad == db.getElementDoubleAbs(it.bIndex + j);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                        }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        r.setAbs(it.oIndex, rb);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                while (it.hasNext()) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                        final long al = it.aLong;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                        boolean rb = true;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                                rb &amp;= al == db.getElementLongAbs(it.bIndex + j);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        r.setAbs(it.oIndex, rb);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                } else {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        if (as == 1) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                if (it.isOutputDouble()) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        while (it.hasNext()) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                                r.setAbs(it.oIndex, it.aDouble == it.bDouble);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                        while (it.hasNext()) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                                r.setAbs(it.oIndex, it.aLong == it.bLong);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                        }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        } else if (it.isOutputDouble()) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                while (it.hasNext()) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        boolean rb = true;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == db.getElementDoubleAbs(it.bIndex + j);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                        r.setAbs(it.oIndex, rb);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        } else {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                while (it.hasNext()) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                        boolean rb = true;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) == db.getElementLongAbs(it.bIndex + j);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                        r.setAbs(it.oIndex, rb);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>                return r;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Compare item-wise for whether a's element is equal b's<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * &lt;p&gt;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * of the dataset with smaller items is used for comparison.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * @param a<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @param b<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         * @param relTolerance<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * @param absTolerance<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @return dataset where item is true if abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public static BooleanDataset almostEqualTo(Object a, Object b, double relTolerance, double absTolerance) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                return almostEqualTo(a, b, null, relTolerance, absTolerance);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * <a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @param a<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * @param b<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @param relTol<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * @param absTol<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @return true if abs(a - b) &lt;= max(absTol, relTol*max(abs(a),abs(b)))<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         */<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public final static boolean isClose(double a, double b, double relTol, double absTol) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return Math.abs(a - b) &lt;= Math.max(absTol, relTol * Math.max(Math.abs(a), Math.abs(b)));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        private final static boolean isCloseNP(double a, double b, double rt, double at) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return Math.abs(a - b) &lt;= at + rt * Math.max(Math.abs(a), Math.abs(b));<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        private final static boolean isCloseNP(double a, double rt, double at) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                double aa = Math.abs(a);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return aa &lt;= at + rt * aa;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * Compare item-wise for whether a's element is equal b's<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * &lt;p&gt;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * of the dataset with smaller items is used for comparison.<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param a<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @param b<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * @param relTolerance<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param absTolerance<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset where item is true if abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        public static BooleanDataset almostEqualTo(Object a, Object b, BooleanDataset o, double relTolerance, double absTolerance) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                it.setOutputDouble(true);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                final int as = da.getElementsPerItem();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                final int bs = db.getElementsPerItem();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>                if (as &gt; bs) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        if (da.isComplex()) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                while (it.hasNext()) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                        boolean rb = isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                        if (rb) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                rb = isCloseNP(da.getElementDoubleAbs(it.aIndex + 1), relTolerance, absTolerance);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                        r.setAbs(it.oIndex, rb);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        } else {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                while (it.hasNext()) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                        final double bd = it.bDouble;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                        boolean rb = true;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                                rb &amp;= isCloseNP(da.getElementDoubleAbs(it.aIndex + j), bd, relTolerance, absTolerance);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                        r.setAbs(it.oIndex, rb);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                } else if (as &lt; bs) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        if (db.isComplex()) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                while (it.hasNext()) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                        boolean rb = isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                        if (rb) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                                rb = isCloseNP(db.getElementDoubleAbs(it.bIndex + 1), relTolerance, absTolerance);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        r.setAbs(it.oIndex, rb);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        } else {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                while (it.hasNext()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                        final double ad = it.aDouble;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                        boolean rb = true;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                                rb &amp;= isCloseNP(ad, db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                        r.setAbs(it.oIndex, rb);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                } else {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        if (as == 1) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                while (it.hasNext()) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        r.setAbs(it.oIndex, isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance));<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                while (it.hasNext()) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                        boolean rb = isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                        for (int j = 1; rb &amp;&amp; j &lt; bs; j++) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                                rb &amp;= isCloseNP(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                        r.setAbs(it.oIndex, rb);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                <a name="line.260"></a>
+<span class="sourceLineNo">261</span>                return r;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>        /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * Compare item-wise for whether a's element is greater than b's<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * &lt;p&gt;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * are greater. Where the datasets have mismatched item sizes, the first element<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * of the dataset with smaller items is used for comparison.<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * @param a<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @param b<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @return dataset where item is true if a &gt; b<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         */<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public static BooleanDataset greaterThan(Object a, Object b) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                return greaterThan(a, b, null);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>        /**<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * Compare item-wise for whether a's element is greater than b's<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * &lt;p&gt;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * are greater. Where the datasets have mismatched item sizes, the first element<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * of the dataset with smaller items is used for comparison.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * @param a<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param b<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset where item is true if a &gt; b<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        public static BooleanDataset greaterThan(Object a, Object b, BooleanDataset o) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                final int as = da.getElementsPerItem();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                final int bs = db.getElementsPerItem();<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (it.isOutputDouble()) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        if (as &gt; bs) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                while (it.hasNext()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                        final double bd = it.bDouble;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        boolean rb = true;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt; bd;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                        r.setAbs(it.oIndex, rb);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        } else if (as &lt; bs) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                while (it.hasNext()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                        final double ad = it.aDouble;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                        boolean rb = true;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                                                rb &amp;= ad &gt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                        r.setAbs(it.oIndex, rb);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                                }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        } else {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                                if (as == 1) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                        while (it.hasNext()) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                                r.setAbs(it.oIndex, it.aDouble &gt; it.bDouble);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                        }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                } else {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                        while (it.hasNext()) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                                boolean rb = true;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                                r.setAbs(it.oIndex, rb);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                } else {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        if (as &gt; bs) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                while (it.hasNext()) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                        final double bl = it.bLong;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                                        boolean rb = true;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt; bl;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                        r.setAbs(it.oIndex, rb);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        } else if (as &lt; bs) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                while (it.hasNext()) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                        final double al = it.aLong;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                        boolean rb = true;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                                rb &amp;= al &gt; db.getElementLongAbs(it.bIndex + j);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                        r.setAbs(it.oIndex, rb);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        } else {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                                if (as == 1) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                        while (it.hasNext()) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                                r.setAbs(it.oIndex, it.aLong &gt; it.bLong);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                } else {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                                        while (it.hasNext()) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                                                boolean rb = true;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt; db.getElementLongAbs(it.bIndex + j);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                                                }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                                r.setAbs(it.oIndex, rb);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                                        }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                }<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>                return r;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>        /**<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         * Compare item-wise for whether a's element is greater than or equal to b's<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * &lt;p&gt;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * are greater or equal. Where the datasets have mismatched item sizes, the first element<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * of the dataset with smaller items is used for comparison.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @param a<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         * @param b<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         * @return dataset where item is true if a &gt;= b<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        public static BooleanDataset greaterThanOrEqualTo(Object a, Object b) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return greaterThanOrEqualTo(a, b, null);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span><a name="line.387"></a>
+<span class="sourceLineNo">388</span>        /**<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         * Compare item-wise for whether a's element is greater than or equal to b's<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         * &lt;p&gt;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * are greater or equal. Where the datasets have mismatched item sizes, the first element<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * of the dataset with smaller items is used for comparison.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @param a<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param b<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * @return dataset where item is true if a &gt;= b<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        public static BooleanDataset greaterThanOrEqualTo(Object a, Object b, BooleanDataset o) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int as = da.getElementsPerItem();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int bs = db.getElementsPerItem();<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                if (it.isOutputDouble()) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        if (as &gt; bs) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                while (it.hasNext()) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                        final double bd = it.bDouble;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                        boolean rb = true;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt;= bd;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                        r.setAbs(it.oIndex, rb);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                }<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        } else if (as &lt; bs) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                                while (it.hasNext()) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                        final double ad = it.aDouble;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                        boolean rb = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                                rb &amp;= ad &gt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                        }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                        r.setAbs(it.oIndex, rb);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        } else {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                                if (as == 1) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                        while (it.hasNext()) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                                r.setAbs(it.oIndex, it.aDouble &gt;= it.bDouble);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                } else {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                        while (it.hasNext()) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                                boolean rb = true;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                                                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                                r.setAbs(it.oIndex, rb);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                                        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                } else {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        if (as &gt; bs) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                while (it.hasNext()) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                        final double bl = it.bLong;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                                        boolean rb = true;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt;= bl;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                                        }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                        r.setAbs(it.oIndex, rb);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                        } else if (as &lt; bs) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                while (it.hasNext()) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                        final double al = it.aLong;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                                        boolean rb = true;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                                rb &amp;= al &gt;= db.getElementLongAbs(it.bIndex + j);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                        r.setAbs(it.oIndex, rb);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        } else {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                if (as == 1) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                        while (it.hasNext()) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                                r.setAbs(it.oIndex, it.aLong &gt;= it.bLong);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                } else {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                        while (it.hasNext()) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                                boolean rb = true;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt;= db.getElementLongAbs(it.bIndex + j);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                                                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                                                r.setAbs(it.oIndex, rb);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                        }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                }<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return r;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>        /**<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         * Compare item-wise for whether a's element is less than b's<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * &lt;p&gt;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * are lesser. Where the datasets have mismatched item sizes, the first element<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * of the dataset with smaller items is used for comparison.<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * @param a<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param b<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @return dataset where item is true if a &lt; b<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public static BooleanDataset lessThan(Object a, Object b) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return lessThan(a, b, null);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Compare item-wise for whether a's element is less than b's<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * &lt;p&gt;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * are lesser. Where the datasets have mismatched item sizes, the first element<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * of the dataset with smaller items is used for comparison.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param a<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param b<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @return dataset where item is true if a &lt; b<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         */<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public static BooleanDataset lessThan(Object a, Object b, BooleanDataset o) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                it.setOutputDouble(true);<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                final int as = da.getElementsPerItem();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                final int bs = db.getElementsPerItem();<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>                if (it.isOutputDouble()) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        if (as &gt; bs) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                while (it.hasNext()) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                        final double bd = it.bDouble;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                        boolean rb = true;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt; bd;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                        r.setAbs(it.oIndex, rb);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        } else if (as &lt; bs) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                while (it.hasNext()) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                        final double ad = it.aDouble;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                        boolean rb = true;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                                rb &amp;= ad &lt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                        }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                        r.setAbs(it.oIndex, rb);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                }<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        } else {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                if (as == 1) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                        while (it.hasNext()) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                                r.setAbs(it.oIndex, it.aDouble &lt; it.bDouble);<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                } else {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                        while (it.hasNext()) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                                boolean rb = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                                r.setAbs(it.oIndex, rb);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                        }<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                }<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                } else {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        if (as &gt; bs) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                while (it.hasNext()) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                        final double bl = it.bLong;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                        boolean rb = true;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt; bl;<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                        }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                        r.setAbs(it.oIndex, rb);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        } else if (as &lt; bs) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                while (it.hasNext()) {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                        final double al = it.aLong;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                        boolean rb = true;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                                rb &amp;= al &lt; db.getElementLongAbs(it.bIndex + j);<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                        }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                        r.setAbs(it.oIndex, rb);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        } else {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                if (as == 1) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                        while (it.hasNext()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                                r.setAbs(it.oIndex, it.aLong &lt; it.bLong);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                } else {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                        while (it.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                                boolean rb = true;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt; db.getElementLongAbs(it.bIndex + j);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                                }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                                r.setAbs(it.oIndex, rb);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                        }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return r;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>        /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * Compare item-wise for whether a's element is less than or equal to b's<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * &lt;p&gt;<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * are lesser or equal. Where the datasets have mismatched item sizes, the first element<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * of the dataset with smaller items is used for comparison.<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param a<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         * @param b<a name="line.602"></a>
+<span class="sourceLineNo">603</span>         * @return dataset where item is true if a &lt;= b<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         */<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        public static BooleanDataset lessThanOrEqualTo(Object a, Object b) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                return lessThanOrEqualTo(a, b, null);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        }<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>        /**<a name="line.609"></a>
+<span class="sourceLineNo">610</span>         * Compare item-wise for whether a's element is less than or equal to b's<a name="line.610"></a>
+<span class="sourceLineNo">611</span>         * &lt;p&gt;<a name="line.611"></a>
+<span class="sourceLineNo">612</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.612"></a>
+<span class="sourceLineNo">613</span>         * are lesser or equal. Where the datasets have mismatched item sizes, the first element<a name="line.613"></a>
+<span class="sourceLineNo">614</span>         * of the dataset with smaller items is used for comparison.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * @param a<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param b<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return dataset where item is true if a &lt;= b<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        public static BooleanDataset lessThanOrEqualTo(Object a, Object b, BooleanDataset o) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                it.setOutputDouble(true);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                final int as = da.getElementsPerItem();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                final int bs = db.getElementsPerItem();<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>                if (it.isOutputDouble()) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        if (as &gt; bs) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                while (it.hasNext()) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                        final double bd = it.bDouble;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                        boolean rb = true;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt;= bd;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                        r.setAbs(it.oIndex, rb);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        } else if (as &lt; bs) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                while (it.hasNext()) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                        final double ad = it.aDouble;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                        boolean rb = true;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                                rb &amp;= ad &lt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                        }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                        r.setAbs(it.oIndex, rb);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        } else {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                if (as == 1) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                        while (it.hasNext()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                r.setAbs(it.oIndex, it.aDouble &lt;= it.bDouble);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                } else {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        while (it.hasNext()) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                                boolean rb = true;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                r.setAbs(it.oIndex, rb);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                } else {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        if (as &gt; bs) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                while (it.hasNext()) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                        final double bl = it.bLong;<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        boolean rb = true;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt;= bl;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        r.setAbs(it.oIndex, rb);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else if (as &lt; bs) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                while (it.hasNext()) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        final double al = it.aLong;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                        boolean rb = true;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                                rb &amp;= al &lt;= db.getElementLongAbs(it.bIndex + j);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                        }<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                        r.setAbs(it.oIndex, rb);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        } else {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                if (as == 1) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                        while (it.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                                r.setAbs(it.oIndex, it.aLong &lt;= it.bLong);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                } else {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                        while (it.hasNext()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                                boolean rb = true;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt;= db.getElementLongAbs(it.bIndex + j);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                                }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                                r.setAbs(it.oIndex, rb);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return r;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>        }<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>        /**<a name="line.706"></a>
+<span class="sourceLineNo">707</span>         * @param a<a name="line.707"></a>
+<span class="sourceLineNo">708</span>         * @param lo lower bound<a name="line.708"></a>
+<span class="sourceLineNo">709</span>         * @param hi upper bound<a name="line.709"></a>
+<span class="sourceLineNo">710</span>         * @return dataset where item is true if l &lt;= a &lt;= h<a name="line.710"></a>
+<span class="sourceLineNo">711</span>         */<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public static BooleanDataset withinRange(Object a, Number lo, Number hi) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return withinRange(a, null, lo, hi);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        /**<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         * @param a<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @param lo lower bound<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         * @param hi upper bound<a name="line.719"></a>
+<span class="sourceLineNo">720</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.720"></a>
+<span class="sourceLineNo">721</span>         * @return dataset where item is true if l &lt;= a &lt;= h<a name="line.721"></a>
+<span class="sourceLineNo">722</span>         */<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public static BooleanDataset withinRange(Object a, BooleanDataset o, Number lo, Number hi) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.726"></a>
+<span class="sourceLineNo">727</span><a name="line.727"></a>
+<span class="sourceLineNo">728</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                final int as = da.getElementsPerItem();<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>                if (it.isOutputDouble()) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final double l = lo.doubleValue();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final double h = hi.doubleValue();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        if (as == 1) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                while (it.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                        final double ad = it.aDouble;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                        r.setAbs(it.oIndex, ad &gt;= l &amp;&amp; ad &lt;= h);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                while (it.hasNext()) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        boolean rb = true;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                                final double ad = da.getElementDoubleAbs(it.aIndex);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                                rb &amp;= ad &gt;= l &amp;&amp; ad &lt;= h;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                        }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                        r.setAbs(it.oIndex, rb);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                }<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                } else {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        final long l = lo.longValue();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        final long h = hi.longValue();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        if (as == 1) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                while (it.hasNext()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                        final long al = it.aLong;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                        r.setAbs(it.oIndex, al &gt;= l &amp;&amp; al &lt;= h);<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        } else {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                while (it.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                        boolean rb = true;<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                                final long al = da.getElementLongAbs(it.aIndex);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                                rb &amp;= al &gt;= l &amp;&amp; al &lt;= h;<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                        r.setAbs(it.oIndex, rb);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                }<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                return r;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span><a name="line.773"></a>
+<span class="sourceLineNo">774</span>        /**<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * Compare item-wise for whether a's element is almost equal to b's<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * &lt;p&gt;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         * are equal up to a tolerance. Where the datasets have mismatched item sizes, the first element<a name="line.778"></a>
+<span class="sourceLineNo">779</span>         * of the dataset with smaller items is used for comparison.<a name="line.779"></a>
+<span class="sourceLineNo">780</span>         * @param a<a name="line.780"></a>
+<span class="sourceLineNo">781</span>         * @param b<a name="line.781"></a>
+<span class="sourceLineNo">782</span>         * @param relTolerance<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * @param absTolerance<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @return true if all items satisfy abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public static boolean allCloseTo(Object a, Object b, double relTolerance, double absTolerance) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                it.setOutputDouble(true);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                final int as = da.getElementsPerItem();<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                final int bs = db.getElementsPerItem();<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>                if (as &gt; bs) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        if (da.isComplex()) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                while (it.hasNext()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                return false;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                        if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + 1), relTolerance, absTolerance))<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                return false;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        } else {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        final double bd = it.bDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        for (int j = 0; j &lt; as; j++) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), bd, relTolerance, absTolerance))<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                        return false;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                } else if (as &lt; bs) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (db.isComplex()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                return false;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                        if (!isCloseNP(db.getElementDoubleAbs(it.bIndex + 1), relTolerance, absTolerance))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                return false;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        } else {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                while (it.hasNext()) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        final double ad = it.aDouble;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                                if (!isCloseNP(ad, db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                                        return false;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                } else {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        if (as == 1) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                while (it.hasNext()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                                return false;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                while (it.hasNext()) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                                        return false;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                <a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return true;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        /**<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param a<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @return true if all elements are true<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        public static boolean allTrue(Object a) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                final IndexIterator it = da.getIterator();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                final int as = da.getElementsPerItem();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                if (as == 1) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        while (it.hasNext()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                if (!da.getElementBooleanAbs(it.index))<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                        return false;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                } else {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        while (it.hasNext()) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        if (!da.getElementBooleanAbs(it.index + j))<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                return false;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                return true;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Test if all items along given axis are true in the input dataset<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @param a<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param axis axis to reduce <a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @return boolean dataset<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public static BooleanDataset allTrue(IDataset a, int axis) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int rank = a.getRank();<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                int[] oshape = a.getShape();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                int alen = oshape[axis];<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                oshape[axis] = 1;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                IndexIterator qiter = result.getIterator(true);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                int[] qpos = qiter.getPos();<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                int[] spos = oshape;<a name="line.893"></a>
+<span class="sourceLineNo">894</span><a name="line.894"></a>
+<span class="sourceLineNo">895</span>                while (qiter.hasNext()) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        int i = 0;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        for (; i &lt; axis; i++) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                spos[i] = qpos[i];<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        spos[i++] = 0;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        for (; i &lt; rank; i++) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                spos[i] = qpos[i-1];<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        boolean br = true;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        for (int j = 0; br &amp;&amp; j &lt; alen; j++) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                spos[axis] = j;<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                br &amp;= a.getBoolean(spos);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        result.set(br, qpos);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                return result;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>        /**<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param a<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @return true if any element is true<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public static boolean anyTrue(Object a) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                final IndexIterator it = da.getIterator();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                final int as = da.getElementsPerItem();<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (as == 1) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                if (da.getElementBooleanAbs(it.index))<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        return true;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                } else {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        while (it.hasNext()) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        if (da.getElementBooleanAbs(it.index + j))<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                return true;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                return false;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>        /**<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * Test if any items along given axis are true in the input dataset<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @param a<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * @param axis axis to reduce <a name="line.943"></a>
+<span class="sourceLineNo">944</span>         * @return boolean dataset<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         */<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        public static BooleanDataset anyTrue(IDataset a, int axis) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>                int rank = a.getRank();<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                int[] oshape = a.getShape();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                int alen = oshape[axis];<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                oshape[axis] = 1;<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.954"></a>
+<span class="sourceLineNo">955</span><a name="line.955"></a>
+<span class="sourceLineNo">956</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>                IndexIterator qiter = result.getIterator(true);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                int[] qpos = qiter.getPos();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                int[] spos = oshape;<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>                while (qiter.hasNext()) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        int i = 0;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        for (; i &lt; axis; i++) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                spos[i] = qpos[i];<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        spos[i++] = 0;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        for (; i &lt; rank; i++) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                spos[i] = qpos[i-1];<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        }<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        boolean br = false;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        for (int j = 0; !br &amp;&amp; j &lt; alen; j++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                spos[axis] = j;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                br |= a.getBoolean(spos);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        result.set(br, qpos);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                return result;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>        /**<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * Negate item-wise<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * &lt;p&gt;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * are true.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param a<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @return dataset where item is true when a is false<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         */<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        public static BooleanDataset logicalNot(Object a) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                return logicalNot(a, null);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>        /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * Negate item-wise<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         * are true.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * @param a<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         * @return dataset where item is true when a is false<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        public static BooleanDataset logicalNot(Object a, BooleanDataset o) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span><a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                final int as = da.getElementsPerItem();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span><a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (as == 1) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        while (it.hasNext()) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                r.setAbs(it.oIndex, !da.getElementBooleanAbs(it.aIndex));<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                } else {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        boolean br = true;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        br &amp;= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                r.setAbs(it.oIndex, !br);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return r;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * &lt;p&gt;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * of the dataset with smaller items is used for comparison.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param a<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @param b<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         */<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        public static BooleanDataset logicalAnd(Object a, Object b) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return logicalAnd(a, b, null);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * &lt;p&gt;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * of the dataset with smaller items is used for comparison.<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param a<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param b<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         */<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public static BooleanDataset logicalAnd(Object a, Object b, BooleanDataset o) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                it.setOutputDouble(true);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                final int as = da.getElementsPerItem();<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                final int bs = db.getElementsPerItem();<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (as &gt; bs) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                boolean rb = true;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; bb;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                r.setAbs(it.oIndex, rb);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                } else if (as &lt; bs) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                boolean rb = true;<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                        rb &amp;= ab &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                r.setAbs(it.oIndex, rb);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                } else {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        if (as == 1) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) &amp;&amp; db.getElementBooleanAbs(it.bIndex));<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        } else {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        boolean rb = true;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span><a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                return r;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span><a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        /**<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * &lt;p&gt;<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>         * of the dataset with smaller items is used for comparison.<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * @param a<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param b<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @return dataset where item is true if a || b is true<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         */<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        public static BooleanDataset logicalOr(Object a, Object b) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                return logicalOr(a, b, null);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span><a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        /**<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * &lt;p&gt;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * of the dataset with smaller items is used for comparison.<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         * @param a<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>         * @param b<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @return dataset where item is true if a || b is true<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         */<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        public static BooleanDataset logicalOr(Object a, Object b, BooleanDataset o) {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span><a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                it.setOutputDouble(true);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                final int as = da.getElementsPerItem();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                final int bs = db.getElementsPerItem();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (as &gt; bs) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        while (it.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                boolean rb = true;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        rb |= da.getElementBooleanAbs(it.aIndex + j) || bb;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                r.setAbs(it.oIndex, rb);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                } else if (as &lt; bs) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        while (it.hasNext()) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                boolean rb = true;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        rb |= ab || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                }<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                r.setAbs(it.oIndex, rb);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        if (as == 1) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) || db.getElementBooleanAbs(it.bIndex));<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        boolean rb = true;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                        }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span><a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                return r;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>        /**<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * &lt;p&gt;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * of the dataset with smaller items is used for comparison.<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @param a<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @param b<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * @return dataset where item is true if a ^ b is true<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         */<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        public static BooleanDataset logicalXor(Object a, Object b) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                return logicalXor(a, b, null);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>        /**<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * &lt;p&gt;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * of the dataset with smaller items is used for comparison.<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @param a<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         * @param b<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>         * @return dataset where item is true if a ^ b is true<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>         */<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public static BooleanDataset logicalXor(Object a, Object b, BooleanDataset o) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                it.setOutputDouble(true);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                final int as = da.getElementsPerItem();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                final int bs = db.getElementsPerItem();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                if (as &gt; bs) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        while (it.hasNext()) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                boolean rb = db.getElementBooleanAbs(it.bIndex);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        rb ^= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                r.setAbs(it.oIndex, rb);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                } else if (as &lt; bs) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                boolean rb = da.getElementBooleanAbs(it.aIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        rb ^= db.getElementBooleanAbs(it.bIndex + j);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                r.setAbs(it.oIndex, rb);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                        if (as == 1) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                while (it.hasNext()) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) ^ db.getElementBooleanAbs(it.bIndex));<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        boolean rb = true;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) ^ db.getElementBooleanAbs(it.bIndex + j);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                }<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span><a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                return r;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span><a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        /**<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>         * Create a list of indices of positions where items are non-zero<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * @param a<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         * @return list of positions as integer datasets<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         */<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>        public static List&lt;IntegerDataset&gt; nonZero(Dataset a) {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                final int rank = a.getRank();<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                final List&lt;List&lt;Integer&gt;&gt; indices = new ArrayList&lt;List&lt;Integer&gt;&gt;();<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                List&lt;IntegerDataset&gt; indexList = new ArrayList&lt;IntegerDataset&gt;();<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                if (rank == 0)<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        return indexList;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span><a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        indices.add(new ArrayList&lt;Integer&gt;());<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                final IndexIterator iter = a.getIterator(true);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                final int[] pos = iter.getPos();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                while (iter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        if (a.getElementBooleanAbs(iter.index)) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                for (int j = 0; j &lt; rank; j++) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        indices.get(j).add(pos[j]);<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        indexList.add((IntegerDataset) DatasetFactory.createFromList(IntegerDataset.class, indices.get(j)));<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                return indexList;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>        }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>        /**<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * &lt;p&gt;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         * @param a<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         */<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        public static BooleanDataset isNaN(Object a) {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                return isNaN(a, null);<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>        /**<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * &lt;p&gt;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         * @param a<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>         */<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>        public static BooleanDataset isNaN(Object a, BooleanDataset o) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span><a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span><a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                if (!da.hasFloatingPointElements()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        if (r == o) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                r.fill(false);<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        return r;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                it.setOutputDouble(true);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                final int as = da.getElementsPerItem();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                if (as == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        while (it.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                r.setAbs(it.oIndex, Double.isNaN(it.aDouble));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                } else {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                while (it.hasNext()) {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                        r.setAbs(it.oIndex, Double.isNaN(it.aDouble) || Double.isNaN(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                        } else {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        boolean rb = false;<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                                rb &amp;= Double.isNaN(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                        }<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        }<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                return r;<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        /**<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         * &lt;p&gt;<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * @param a<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         */<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        public static BooleanDataset isInfinite(Object a) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                return isInfinite(a, null);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        /**<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * &lt;p&gt;<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         * @param a<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>         */<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public static BooleanDataset isInfinite(Object a, BooleanDataset o) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span><a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                if (!da.hasFloatingPointElements()) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        if (r == o) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                r.fill(false);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        return r;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                it.setOutputDouble(true);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                final int as = da.getElementsPerItem();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                if (as == 1) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                        while (it.hasNext()) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                r.setAbs(it.oIndex, Double.isInfinite(it.aDouble));<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                } else {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                while (it.hasNext()) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        r.setAbs(it.oIndex, Double.isInfinite(it.aDouble) || Double.isInfinite(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                }<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        } else {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        boolean rb = false;<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                rb &amp;= Double.isInfinite(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                return r;<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>        }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span><a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        /**<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * &lt;p&gt;<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>         * @param a<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>         */<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public static BooleanDataset isPositiveInfinite(Object a) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return isEqual(a, null, Double.POSITIVE_INFINITY);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>        /**<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * &lt;p&gt;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         * @param a<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>         */<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>        public static BooleanDataset isPositiveInfinite(Object a, BooleanDataset o) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                return isEqual(a, o, Double.POSITIVE_INFINITY);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span><a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>        /**<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * &lt;p&gt;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>         * @param a<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>         */<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        public static BooleanDataset isNegativeInfinite(Object a) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                return isEqual(a, null, Double.NEGATIVE_INFINITY);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span><a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        /**<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * &lt;p&gt;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         * @param a<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>         */<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>        public static BooleanDataset isNegativeInfinite(Object a, BooleanDataset o) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                return isEqual(a, o, Double.NEGATIVE_INFINITY);<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span><a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        /**<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * Check item-wise for whether any a's elements match given item<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * &lt;p&gt;<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * For multi-element items, the check is true if any elements in an item matches<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         * @param a<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>         * @param match<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>         * @return dataset where items are true if any of its elements match<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>         */<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>        private static BooleanDataset isEqual(Object a, BooleanDataset o, final double match) {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                if (!da.hasFloatingPointElements()) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        if (r == o) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                r.fill(false);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                        }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                        return r;<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                }<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                it.setOutputDouble(true);<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                final int as = da.getElementsPerItem();<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                if (as == 1) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                r.setAbs(it.oIndex, it.aDouble == match);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        final double rv = it.aDouble;<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                        r.setAbs(it.oIndex, (rv == match) || (iv == match));<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        } else {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                while (it.hasNext()) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        boolean rb = false;<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == match;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return r;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * &lt;p&gt;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>         * @param a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>         */<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        public static BooleanDataset isFinite(Object a) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                return isFinite(a, null);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>        }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>        /**<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * &lt;p&gt;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         * @param a<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>         */<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        public static BooleanDataset isFinite(Object a, BooleanDataset o) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span><a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                if (!da.hasFloatingPointElements()) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        r.fill(true);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        return r;<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span><a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                it.setOutputDouble(true);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                final int as = da.getElementsPerItem();<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                if (as == 1) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                final double rv = it.aDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv)));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                } else {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                while (it.hasNext()) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                        final double rv = it.aDouble;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv) || Double.isInfinite(iv) || Double.isNaN(iv)));<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        } else {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                while (it.hasNext()) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        boolean rb = false;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                final double rv = it.aDouble;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                rb &amp;= !(Double.isInfinite(rv) || Double.isNaN(rv));<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                return r;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>        }<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span><a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>        /**<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>         * Enumeration of monotonicity. NaNs are ignored or considered not equal<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>         */<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>        public static enum Monotonicity {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                /**<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                 * No order: x_0 != x_1 != x_2 ...<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                 */<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                NOT_ORDERED,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                /**<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                 * All equal: x_0 == x_1 == x_2 ...<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                 */<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                ALL_EQUAL,<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                /**<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                 * Strictly decreasing x_0 &gt; x_1 &gt; x_2 ...<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                 */<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                STRICTLY_DECREASING,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                /**<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                 * Non-increasing or weakly decreasing x_0 &gt;= x_1 &gt;= x_2 ...<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                 */<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                NONINCREASING,<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                /**<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                 * Non-decreasing or weakly increasing x_0 &lt;= x_1 &lt;= x_2 ...<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                 */<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                NONDECREASING,<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                /**<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                 * Strictly increasing x_0 &lt; x_1 &lt; x_2 ...<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                 */<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                STRICTLY_INCREASING,<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>        }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        /**<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         * @param a<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>         * @return true if all elements are in a monotonic order<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>         * @see #findMonotonicity(Object)<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>         */<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        public static boolean isMonotonic(Object a) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return findMonotonicity(a) != Monotonicity.NOT_ORDERED;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        /**<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         * @param a<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * @param monotonicity<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         * @return true if all elements are in given monotonic ordering<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         */<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>        public static boolean isMonotonic(Object a, Monotonicity monotonicity) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                if (da.getRank() &gt; 1) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span><a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                final IndexIterator it = da.getIterator();<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                double previous = Double.NaN;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span><a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                Boolean increasing = null;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                boolean equality = false;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                while (it.hasNext()) { // look for first change<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        if (!Double.isNaN(next)) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                if (previous != next) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        increasing = previous &lt; next;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        previous = next;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        break;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                } else if (!equality) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                        equality = true;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                                return false;<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                }<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                }<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span><a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                if (increasing == null) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                        if (equality)<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                return monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.NONINCREASING;<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                        return Double.isNaN(previous) ? monotonicity == Monotonicity.NOT_ORDERED : true;<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span><a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                if (increasing) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONINCREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                return false;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span><a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                        while (it.hasNext()) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                if (!Double.isNaN(next)) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        if (previous &gt; next) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        } else if (previous &lt; next) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                previous = next;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                        } else if (!equality) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                equality = true;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                                if (monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                        return false;<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        }<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                }<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                        }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span><a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span><a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        return false;<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                while (it.hasNext()) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                        if (!Double.isNaN(next)) {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                if (previous &lt; next) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                } else if (previous &gt; next) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        previous = next;<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                } else if (!equality) {<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        equality = true;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                return false;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                }<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span><a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>        }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span><a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>        /**<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         * @param a<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>         * @return true if all elements are in a strictly monotonic order<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>         * @see #findMonotonicity(Object)<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         */<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        public static boolean isStrictlyMonotonic(Object a) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                Monotonicity mono = findMonotonicity(a);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                return mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.STRICTLY_INCREASING;<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span><a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        /**<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         * Find monotonicity. NaNs are ignored or considered not equal<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>         * @param a<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>         * @return monotonicity<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>         */<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>        public static Monotonicity findMonotonicity(Object a) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                if (da.getRank() &gt; 1) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                }<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span><a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                final IndexIterator it = da.getIterator();<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                double previous = Double.NaN;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span><a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                Boolean increasing = null;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                boolean equality = false;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                while (it.hasNext()) { // look for first change<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                        if (!Double.isNaN(next)) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                if (previous != next) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                        increasing = previous &lt; next;<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        previous = next;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        break;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else if (!equality) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        equality = true;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span><a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                if (increasing == null) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                        return Double.isNaN(previous) ? Monotonicity.NOT_ORDERED : Monotonicity.ALL_EQUAL;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span><a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                if (increasing) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                if (!Double.isNaN(next)) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        if (previous &gt; next) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                return Monotonicity.NOT_ORDERED;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        } else if (previous &lt; next) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                previous = next;<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        } else if (!equality) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                equality = true;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                }<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                        }<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        return equality ? Monotonicity.NONDECREASING : Monotonicity.STRICTLY_INCREASING;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                while (it.hasNext()) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        if (!Double.isNaN(next)) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                if (previous &lt; next) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                        return Monotonicity.NOT_ORDERED;<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                } else if (previous &gt; next) {<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        previous = next;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                } else if (!equality) {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                        equality = true;<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                }<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return equality ? Monotonicity.NONINCREASING : Monotonicity.STRICTLY_DECREASING;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>}<a name="line.1767"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Comparisons.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Comparisons.html
new file mode 100644
index 0000000..611d354
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Comparisons.html
@@ -0,0 +1,1839 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Comparison and logical methods<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class Comparisons {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Compare item-wise for whether a's element is equal b's<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * &lt;p&gt;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * of the dataset with smaller items is used for comparison.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param b<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return dataset where item is true if a == b<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public static BooleanDataset equalTo(Object a, Object b) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                return equalTo(a, b, null);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * Compare item-wise for whether a's element is equal b's<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * &lt;p&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * of the dataset with smaller items is used for comparison.<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param a<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param b<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @return dataset where item is true if a == b<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public static BooleanDataset equalTo(Object a, Object b, BooleanDataset o) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                final int as = da.getElementsPerItem();<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                final int bs = db.getElementsPerItem();<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                if (as &gt; bs) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        if (da.isComplex()) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                while (it.hasNext()) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                                        final double bd = it.bDouble;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                                        boolean rb = it.aDouble == bd &amp;&amp; da.getElementDoubleAbs(it.aIndex + 1) == 0;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                        r.setAbs(it.oIndex, rb);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        } else if (it.isOutputDouble()) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                while (it.hasNext()) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                        final double bd = it.bDouble;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                                        boolean rb = true;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == bd;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                        r.setAbs(it.oIndex, rb);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        } else {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                while (it.hasNext()) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                        final long bl = it.bLong;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        boolean rb = true;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) == bl;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                        r.setAbs(it.oIndex, rb);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                } else if (as &lt; bs) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        if (db.isComplex()) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                while (it.hasNext()) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                        final double ad = it.aDouble;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                        boolean rb = ad == it.bDouble &amp;&amp; 0 == db.getElementDoubleAbs(it.bIndex + 1);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                        r.setAbs(it.oIndex, rb);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        } else if (it.isOutputDouble()) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                while (it.hasNext()) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                        final double ad = it.aDouble;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                        boolean rb = true;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                                rb &amp;= ad == db.getElementDoubleAbs(it.bIndex + j);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                        }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        r.setAbs(it.oIndex, rb);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                while (it.hasNext()) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                        final long al = it.aLong;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                        boolean rb = true;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                                rb &amp;= al == db.getElementLongAbs(it.bIndex + j);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        r.setAbs(it.oIndex, rb);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                } else {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        if (as == 1) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                if (it.isOutputDouble()) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        while (it.hasNext()) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                                r.setAbs(it.oIndex, it.aDouble == it.bDouble);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                } else {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                        while (it.hasNext()) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                                r.setAbs(it.oIndex, it.aLong == it.bLong);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                        }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        } else if (it.isOutputDouble()) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                while (it.hasNext()) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                        boolean rb = true;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == db.getElementDoubleAbs(it.bIndex + j);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                        r.setAbs(it.oIndex, rb);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        } else {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                while (it.hasNext()) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                        boolean rb = true;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) == db.getElementLongAbs(it.bIndex + j);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                        r.setAbs(it.oIndex, rb);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>                return r;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Compare item-wise for whether a's element is equal b's<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * &lt;p&gt;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * of the dataset with smaller items is used for comparison.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * @param a<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @param b<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         * @param relTolerance<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * @param absTolerance<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @return dataset where item is true if abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public static BooleanDataset almostEqualTo(Object a, Object b, double relTolerance, double absTolerance) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                return almostEqualTo(a, b, null, relTolerance, absTolerance);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * <a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @param a<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * @param b<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @param relTol<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * @param absTol<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @return true if abs(a - b) &lt;= max(absTol, relTol*max(abs(a),abs(b)))<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         */<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public final static boolean isClose(double a, double b, double relTol, double absTol) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return Math.abs(a - b) &lt;= Math.max(absTol, relTol * Math.max(Math.abs(a), Math.abs(b)));<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        private final static boolean isCloseNP(double a, double b, double rt, double at) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return Math.abs(a - b) &lt;= at + rt * Math.max(Math.abs(a), Math.abs(b));<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        private final static boolean isCloseNP(double a, double rt, double at) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                double aa = Math.abs(a);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return aa &lt;= at + rt * aa;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * Compare item-wise for whether a's element is equal b's<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * &lt;p&gt;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * are equal. Where the datasets have mismatched item sizes, the first element<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * of the dataset with smaller items is used for comparison.<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param a<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @param b<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * @param relTolerance<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param absTolerance<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @return dataset where item is true if abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        public static BooleanDataset almostEqualTo(Object a, Object b, BooleanDataset o, double relTolerance, double absTolerance) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                it.setOutputDouble(true);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                final int as = da.getElementsPerItem();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                final int bs = db.getElementsPerItem();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>                if (as &gt; bs) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        if (da.isComplex()) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                while (it.hasNext()) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                        boolean rb = isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                        if (rb) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                                                rb = isCloseNP(da.getElementDoubleAbs(it.aIndex + 1), relTolerance, absTolerance);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                        r.setAbs(it.oIndex, rb);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        } else {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                while (it.hasNext()) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                        final double bd = it.bDouble;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                        boolean rb = true;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                                rb &amp;= isCloseNP(da.getElementDoubleAbs(it.aIndex + j), bd, relTolerance, absTolerance);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                        r.setAbs(it.oIndex, rb);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                } else if (as &lt; bs) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        if (db.isComplex()) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                while (it.hasNext()) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                        boolean rb = isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                        if (rb) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                                rb = isCloseNP(db.getElementDoubleAbs(it.bIndex + 1), relTolerance, absTolerance);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                        r.setAbs(it.oIndex, rb);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        } else {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                while (it.hasNext()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                        final double ad = it.aDouble;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                        boolean rb = true;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                                rb &amp;= isCloseNP(ad, db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                        r.setAbs(it.oIndex, rb);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                } else {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        if (as == 1) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                while (it.hasNext()) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        r.setAbs(it.oIndex, isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance));<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                while (it.hasNext()) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                        boolean rb = isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                        for (int j = 1; rb &amp;&amp; j &lt; bs; j++) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                                rb &amp;= isCloseNP(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                        r.setAbs(it.oIndex, rb);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                <a name="line.260"></a>
+<span class="sourceLineNo">261</span>                return r;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>        /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * Compare item-wise for whether a's element is greater than b's<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * &lt;p&gt;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * are greater. Where the datasets have mismatched item sizes, the first element<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * of the dataset with smaller items is used for comparison.<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * @param a<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @param b<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @return dataset where item is true if a &gt; b<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         */<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public static BooleanDataset greaterThan(Object a, Object b) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                return greaterThan(a, b, null);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>        /**<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * Compare item-wise for whether a's element is greater than b's<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * &lt;p&gt;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * are greater. Where the datasets have mismatched item sizes, the first element<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * of the dataset with smaller items is used for comparison.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * @param a<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param b<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset where item is true if a &gt; b<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        public static BooleanDataset greaterThan(Object a, Object b, BooleanDataset o) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                final int as = da.getElementsPerItem();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                final int bs = db.getElementsPerItem();<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (it.isOutputDouble()) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        if (as &gt; bs) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                while (it.hasNext()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                        final double bd = it.bDouble;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        boolean rb = true;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt; bd;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                        r.setAbs(it.oIndex, rb);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        } else if (as &lt; bs) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                while (it.hasNext()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                        final double ad = it.aDouble;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                        boolean rb = true;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                                                rb &amp;= ad &gt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                        r.setAbs(it.oIndex, rb);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                                }<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        } else {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                                if (as == 1) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                        while (it.hasNext()) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                                r.setAbs(it.oIndex, it.aDouble &gt; it.bDouble);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                        }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                } else {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                        while (it.hasNext()) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                                boolean rb = true;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                                }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                                r.setAbs(it.oIndex, rb);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                } else {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        if (as &gt; bs) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                while (it.hasNext()) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                        final double bl = it.bLong;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                                        boolean rb = true;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt; bl;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                        r.setAbs(it.oIndex, rb);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        } else if (as &lt; bs) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                while (it.hasNext()) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                        final double al = it.aLong;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                        boolean rb = true;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                                rb &amp;= al &gt; db.getElementLongAbs(it.bIndex + j);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                        r.setAbs(it.oIndex, rb);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        } else {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                                if (as == 1) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                        while (it.hasNext()) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                                r.setAbs(it.oIndex, it.aLong &gt; it.bLong);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                } else {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                                        while (it.hasNext()) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                                                boolean rb = true;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt; db.getElementLongAbs(it.bIndex + j);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                                                }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                                r.setAbs(it.oIndex, rb);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                                        }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                }<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>                return r;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span>        /**<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         * Compare item-wise for whether a's element is greater than or equal to b's<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * &lt;p&gt;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * are greater or equal. Where the datasets have mismatched item sizes, the first element<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * of the dataset with smaller items is used for comparison.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @param a<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         * @param b<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         * @return dataset where item is true if a &gt;= b<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        public static BooleanDataset greaterThanOrEqualTo(Object a, Object b) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                return greaterThanOrEqualTo(a, b, null);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        }<a name="line.386"></a>
+<span class="sourceLineNo">387</span><a name="line.387"></a>
+<span class="sourceLineNo">388</span>        /**<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         * Compare item-wise for whether a's element is greater than or equal to b's<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         * &lt;p&gt;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * are greater or equal. Where the datasets have mismatched item sizes, the first element<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * of the dataset with smaller items is used for comparison.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @param a<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param b<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * @return dataset where item is true if a &gt;= b<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        public static BooleanDataset greaterThanOrEqualTo(Object a, Object b, BooleanDataset o) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                final int as = da.getElementsPerItem();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                final int bs = db.getElementsPerItem();<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                if (it.isOutputDouble()) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        if (as &gt; bs) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                while (it.hasNext()) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                        final double bd = it.bDouble;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                        boolean rb = true;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt;= bd;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                        r.setAbs(it.oIndex, rb);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                }<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        } else if (as &lt; bs) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                                while (it.hasNext()) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                        final double ad = it.aDouble;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                        boolean rb = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                                rb &amp;= ad &gt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                        }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                        r.setAbs(it.oIndex, rb);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        } else {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                                if (as == 1) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                        while (it.hasNext()) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                                r.setAbs(it.oIndex, it.aDouble &gt;= it.bDouble);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                } else {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                        while (it.hasNext()) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                                boolean rb = true;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &gt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                                                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                                r.setAbs(it.oIndex, rb);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                                        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                } else {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        if (as &gt; bs) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                while (it.hasNext()) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                        final double bl = it.bLong;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                                        boolean rb = true;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt;= bl;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                                        }<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                        r.setAbs(it.oIndex, rb);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                        } else if (as &lt; bs) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                while (it.hasNext()) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                        final double al = it.aLong;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                                        boolean rb = true;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                                                rb &amp;= al &gt;= db.getElementLongAbs(it.bIndex + j);<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                                        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                        r.setAbs(it.oIndex, rb);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        } else {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                if (as == 1) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                        while (it.hasNext()) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                                r.setAbs(it.oIndex, it.aLong &gt;= it.bLong);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                } else {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                        while (it.hasNext()) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                                boolean rb = true;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &gt;= db.getElementLongAbs(it.bIndex + j);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                                                }<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                                                r.setAbs(it.oIndex, rb);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                        }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                }<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>                return r;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>        /**<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         * Compare item-wise for whether a's element is less than b's<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * &lt;p&gt;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * are lesser. Where the datasets have mismatched item sizes, the first element<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * of the dataset with smaller items is used for comparison.<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * @param a<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param b<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @return dataset where item is true if a &lt; b<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public static BooleanDataset lessThan(Object a, Object b) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return lessThan(a, b, null);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Compare item-wise for whether a's element is less than b's<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * &lt;p&gt;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * are lesser. Where the datasets have mismatched item sizes, the first element<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * of the dataset with smaller items is used for comparison.<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param a<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param b<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @return dataset where item is true if a &lt; b<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         */<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public static BooleanDataset lessThan(Object a, Object b, BooleanDataset o) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                it.setOutputDouble(true);<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                final int as = da.getElementsPerItem();<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                final int bs = db.getElementsPerItem();<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>                if (it.isOutputDouble()) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        if (as &gt; bs) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                while (it.hasNext()) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                        final double bd = it.bDouble;<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                        boolean rb = true;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt; bd;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                        r.setAbs(it.oIndex, rb);<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                }<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        } else if (as &lt; bs) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                while (it.hasNext()) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                        final double ad = it.aDouble;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                        boolean rb = true;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                                rb &amp;= ad &lt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                        }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                        r.setAbs(it.oIndex, rb);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                }<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        } else {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                if (as == 1) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                        while (it.hasNext()) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                                r.setAbs(it.oIndex, it.aDouble &lt; it.bDouble);<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                } else {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                        while (it.hasNext()) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                                boolean rb = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt; db.getElementDoubleAbs(it.bIndex + j);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                                r.setAbs(it.oIndex, rb);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                        }<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                }<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                } else {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        if (as &gt; bs) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                while (it.hasNext()) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                        final double bl = it.bLong;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                        boolean rb = true;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt; bl;<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                        }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                        r.setAbs(it.oIndex, rb);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        } else if (as &lt; bs) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                while (it.hasNext()) {<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                        final double al = it.aLong;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                        boolean rb = true;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                                rb &amp;= al &lt; db.getElementLongAbs(it.bIndex + j);<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                        }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                        r.setAbs(it.oIndex, rb);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        } else {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                if (as == 1) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                        while (it.hasNext()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                                r.setAbs(it.oIndex, it.aLong &lt; it.bLong);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                } else {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                        while (it.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                                boolean rb = true;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt; db.getElementLongAbs(it.bIndex + j);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                                }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                                r.setAbs(it.oIndex, rb);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                        }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        }<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>                return r;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>        /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * Compare item-wise for whether a's element is less than or equal to b's<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * &lt;p&gt;<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * are lesser or equal. Where the datasets have mismatched item sizes, the first element<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * of the dataset with smaller items is used for comparison.<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param a<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         * @param b<a name="line.602"></a>
+<span class="sourceLineNo">603</span>         * @return dataset where item is true if a &lt;= b<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         */<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        public static BooleanDataset lessThanOrEqualTo(Object a, Object b) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                return lessThanOrEqualTo(a, b, null);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        }<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>        /**<a name="line.609"></a>
+<span class="sourceLineNo">610</span>         * Compare item-wise for whether a's element is less than or equal to b's<a name="line.610"></a>
+<span class="sourceLineNo">611</span>         * &lt;p&gt;<a name="line.611"></a>
+<span class="sourceLineNo">612</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.612"></a>
+<span class="sourceLineNo">613</span>         * are lesser or equal. Where the datasets have mismatched item sizes, the first element<a name="line.613"></a>
+<span class="sourceLineNo">614</span>         * of the dataset with smaller items is used for comparison.<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * @param a<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @param b<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return dataset where item is true if a &lt;= b<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        public static BooleanDataset lessThanOrEqualTo(Object a, Object b, BooleanDataset o) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                it.setOutputDouble(true);<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                final int as = da.getElementsPerItem();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                final int bs = db.getElementsPerItem();<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>                if (it.isOutputDouble()) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        if (as &gt; bs) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                while (it.hasNext()) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                        final double bd = it.bDouble;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                        boolean rb = true;<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt;= bd;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                        r.setAbs(it.oIndex, rb);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        } else if (as &lt; bs) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                while (it.hasNext()) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                        final double ad = it.aDouble;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                        boolean rb = true;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                                rb &amp;= ad &lt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                        }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                        r.setAbs(it.oIndex, rb);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        } else {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                if (as == 1) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                        while (it.hasNext()) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                r.setAbs(it.oIndex, it.aDouble &lt;= it.bDouble);<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        }<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                } else {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        while (it.hasNext()) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                                boolean rb = true;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                                        rb &amp;= da.getElementDoubleAbs(it.aIndex + j) &lt;= db.getElementDoubleAbs(it.bIndex + j);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                r.setAbs(it.oIndex, rb);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                } else {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        if (as &gt; bs) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                while (it.hasNext()) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                        final double bl = it.bLong;<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        boolean rb = true;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                                rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt;= bl;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        r.setAbs(it.oIndex, rb);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        } else if (as &lt; bs) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                while (it.hasNext()) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        final double al = it.aLong;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                        boolean rb = true;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                                rb &amp;= al &lt;= db.getElementLongAbs(it.bIndex + j);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                        }<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                        r.setAbs(it.oIndex, rb);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        } else {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                if (as == 1) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                        while (it.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                                r.setAbs(it.oIndex, it.aLong &lt;= it.bLong);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                } else {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                        while (it.hasNext()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                                boolean rb = true;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                        rb &amp;= da.getElementLongAbs(it.aIndex + j) &lt;= db.getElementLongAbs(it.bIndex + j);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                                }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                                r.setAbs(it.oIndex, rb);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                return r;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>        }<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>        /**<a name="line.706"></a>
+<span class="sourceLineNo">707</span>         * @param a<a name="line.707"></a>
+<span class="sourceLineNo">708</span>         * @param lo lower bound<a name="line.708"></a>
+<span class="sourceLineNo">709</span>         * @param hi upper bound<a name="line.709"></a>
+<span class="sourceLineNo">710</span>         * @return dataset where item is true if l &lt;= a &lt;= h<a name="line.710"></a>
+<span class="sourceLineNo">711</span>         */<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public static BooleanDataset withinRange(Object a, Number lo, Number hi) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return withinRange(a, null, lo, hi);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        /**<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         * @param a<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @param lo lower bound<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         * @param hi upper bound<a name="line.719"></a>
+<span class="sourceLineNo">720</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.720"></a>
+<span class="sourceLineNo">721</span>         * @return dataset where item is true if l &lt;= a &lt;= h<a name="line.721"></a>
+<span class="sourceLineNo">722</span>         */<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public static BooleanDataset withinRange(Object a, BooleanDataset o, Number lo, Number hi) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.726"></a>
+<span class="sourceLineNo">727</span><a name="line.727"></a>
+<span class="sourceLineNo">728</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.728"></a>
+<span class="sourceLineNo">729</span><a name="line.729"></a>
+<span class="sourceLineNo">730</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                final int as = da.getElementsPerItem();<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>                if (it.isOutputDouble()) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final double l = lo.doubleValue();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final double h = hi.doubleValue();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        if (as == 1) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                while (it.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                        final double ad = it.aDouble;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                        r.setAbs(it.oIndex, ad &gt;= l &amp;&amp; ad &lt;= h);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                while (it.hasNext()) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        boolean rb = true;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                                final double ad = da.getElementDoubleAbs(it.aIndex);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                                rb &amp;= ad &gt;= l &amp;&amp; ad &lt;= h;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                        }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                        r.setAbs(it.oIndex, rb);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                }<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                } else {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        final long l = lo.longValue();<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        final long h = hi.longValue();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        if (as == 1) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                while (it.hasNext()) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                        final long al = it.aLong;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                        r.setAbs(it.oIndex, al &gt;= l &amp;&amp; al &lt;= h);<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        } else {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                while (it.hasNext()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                        boolean rb = true;<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                        for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                                                final long al = da.getElementLongAbs(it.aIndex);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                                rb &amp;= al &gt;= l &amp;&amp; al &lt;= h;<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                        }<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                        r.setAbs(it.oIndex, rb);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                }<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                return r;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span><a name="line.773"></a>
+<span class="sourceLineNo">774</span>        /**<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * Compare item-wise for whether a's element is almost equal to b's<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * &lt;p&gt;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * For multi-element items, comparison is true if all elements in an item<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         * are equal up to a tolerance. Where the datasets have mismatched item sizes, the first element<a name="line.778"></a>
+<span class="sourceLineNo">779</span>         * of the dataset with smaller items is used for comparison.<a name="line.779"></a>
+<span class="sourceLineNo">780</span>         * @param a<a name="line.780"></a>
+<span class="sourceLineNo">781</span>         * @param b<a name="line.781"></a>
+<span class="sourceLineNo">782</span>         * @param relTolerance<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * @param absTolerance<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @return true if all items satisfy abs(a - b) &lt;= absTol + relTol*max(abs(a),abs(b))<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public static boolean allCloseTo(Object a, Object b, double relTolerance, double absTolerance) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.788"></a>
+<span class="sourceLineNo">789</span><a name="line.789"></a>
+<span class="sourceLineNo">790</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                it.setOutputDouble(true);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                final int as = da.getElementsPerItem();<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                final int bs = db.getElementsPerItem();<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>                if (as &gt; bs) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        if (da.isComplex()) {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                while (it.hasNext()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                return false;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                        if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + 1), relTolerance, absTolerance))<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                return false;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        } else {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                while (it.hasNext()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        final double bd = it.bDouble;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        for (int j = 0; j &lt; as; j++) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), bd, relTolerance, absTolerance))<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                        return false;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                } else if (as &lt; bs) {<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (db.isComplex()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                return false;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                        if (!isCloseNP(db.getElementDoubleAbs(it.bIndex + 1), relTolerance, absTolerance))<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                return false;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                        } else {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                while (it.hasNext()) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                        final double ad = it.aDouble;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                                if (!isCloseNP(ad, db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                                        return false;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                } else {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        if (as == 1) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                while (it.hasNext()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                        if (!isCloseNP(it.aDouble, it.bDouble, relTolerance, absTolerance))<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                                return false;<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                while (it.hasNext()) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        for (int j = 0; j &lt; bs; j++) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                                if (!isCloseNP(da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j), relTolerance, absTolerance))<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                                        return false;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                <a name="line.844"></a>
+<span class="sourceLineNo">845</span>                return true;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>        /**<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param a<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @return true if all elements are true<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        public static boolean allTrue(Object a) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                final IndexIterator it = da.getIterator();<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                final int as = da.getElementsPerItem();<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                if (as == 1) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        while (it.hasNext()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                if (!da.getElementBooleanAbs(it.index))<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                        return false;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                } else {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        while (it.hasNext()) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        if (!da.getElementBooleanAbs(it.index + j))<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                return false;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                return true;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Test if all items along given axis are true in the input dataset<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @param a<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param axis axis to reduce <a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @return boolean dataset<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public static BooleanDataset allTrue(IDataset a, int axis) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                int rank = a.getRank();<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                int[] oshape = a.getShape();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                int alen = oshape[axis];<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                oshape[axis] = 1;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                IndexIterator qiter = result.getIterator(true);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                int[] qpos = qiter.getPos();<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                int[] spos = oshape;<a name="line.893"></a>
+<span class="sourceLineNo">894</span><a name="line.894"></a>
+<span class="sourceLineNo">895</span>                while (qiter.hasNext()) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        int i = 0;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        for (; i &lt; axis; i++) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                spos[i] = qpos[i];<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        spos[i++] = 0;<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        for (; i &lt; rank; i++) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                spos[i] = qpos[i-1];<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        }<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        boolean br = true;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        for (int j = 0; br &amp;&amp; j &lt; alen; j++) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                spos[axis] = j;<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                br &amp;= a.getBoolean(spos);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                        result.set(br, qpos);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                return result;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>        /**<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param a<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @return true if any element is true<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public static boolean anyTrue(Object a) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                final IndexIterator it = da.getIterator();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                final int as = da.getElementsPerItem();<a name="line.922"></a>
+<span class="sourceLineNo">923</span><a name="line.923"></a>
+<span class="sourceLineNo">924</span>                if (as == 1) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                if (da.getElementBooleanAbs(it.index))<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        return true;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                } else {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        while (it.hasNext()) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        if (da.getElementBooleanAbs(it.index + j))<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                return true;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                return false;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>        /**<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         * Test if any items along given axis are true in the input dataset<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @param a<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * @param axis axis to reduce <a name="line.943"></a>
+<span class="sourceLineNo">944</span>         * @return boolean dataset<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         */<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        public static BooleanDataset anyTrue(IDataset a, int axis) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                axis = ShapeUtils.checkAxis(a.getRank(), axis);<a name="line.947"></a>
+<span class="sourceLineNo">948</span><a name="line.948"></a>
+<span class="sourceLineNo">949</span>                int rank = a.getRank();<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                int[] oshape = a.getShape();<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                int alen = oshape[axis];<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                oshape[axis] = 1;<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>                int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.954"></a>
+<span class="sourceLineNo">955</span><a name="line.955"></a>
+<span class="sourceLineNo">956</span>                BooleanDataset result = DatasetFactory.zeros(BooleanDataset.class, nshape);<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>                IndexIterator qiter = result.getIterator(true);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                int[] qpos = qiter.getPos();<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                int[] spos = oshape;<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>                while (qiter.hasNext()) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        int i = 0;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        for (; i &lt; axis; i++) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                spos[i] = qpos[i];<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        spos[i++] = 0;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        for (; i &lt; rank; i++) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                spos[i] = qpos[i-1];<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        }<a name="line.970"></a>
+<span class="sourceLineNo">971</span><a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        boolean br = false;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                        for (int j = 0; !br &amp;&amp; j &lt; alen; j++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                spos[axis] = j;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                br |= a.getBoolean(spos);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        result.set(br, qpos);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                return result;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>        /**<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * Negate item-wise<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * &lt;p&gt;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         * are true.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>         * @param a<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @return dataset where item is true when a is false<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         */<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        public static BooleanDataset logicalNot(Object a) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                return logicalNot(a, null);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>        /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * Negate item-wise<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * &lt;p&gt;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * For multi-element items, negation is false if all elements in a pair of items<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         * are true.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>         * @param a<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         * @return dataset where item is true when a is false<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         */<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        public static BooleanDataset logicalNot(Object a, BooleanDataset o) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span><a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                final int as = da.getElementsPerItem();<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span><a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (as == 1) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        while (it.hasNext()) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                r.setAbs(it.oIndex, !da.getElementBooleanAbs(it.aIndex));<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                } else {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        boolean br = true;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        while (it.hasNext()) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        br &amp;= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                r.setAbs(it.oIndex, !br);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return r;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * &lt;p&gt;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * of the dataset with smaller items is used for comparison.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param a<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @param b<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>         */<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        public static BooleanDataset logicalAnd(Object a, Object b) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return logicalAnd(a, b, null);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * Compare item-wise for whether a's item is true and b's true too.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * &lt;p&gt;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * For multi-element items, comparison is true if all elements in a pair of items<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * of the dataset with smaller items is used for comparison.<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param a<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param b<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         * @return dataset where item is true if a &amp;&amp; b is true<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         */<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>        public static BooleanDataset logicalAnd(Object a, Object b, BooleanDataset o) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span><a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                it.setOutputDouble(true);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                final int as = da.getElementsPerItem();<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                final int bs = db.getElementsPerItem();<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (as &gt; bs) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        while (it.hasNext()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                boolean rb = true;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                for (int j = 0; rb &amp;&amp; j &lt; as; j++) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; bb;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                r.setAbs(it.oIndex, rb);<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                } else if (as &lt; bs) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                boolean rb = true;<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                        rb &amp;= ab &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                r.setAbs(it.oIndex, rb);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                } else {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        if (as == 1) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) &amp;&amp; db.getElementBooleanAbs(it.bIndex));<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        } else {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                while (it.hasNext()) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        boolean rb = true;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) &amp;&amp; db.getElementBooleanAbs(it.bIndex + j);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                        }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span><a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                return r;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>        }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span><a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        /**<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         * &lt;p&gt;<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>         * of the dataset with smaller items is used for comparison.<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * @param a<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param b<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @return dataset where item is true if a || b is true<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         */<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        public static BooleanDataset logicalOr(Object a, Object b) {<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                return logicalOr(a, b, null);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        }<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span><a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>        /**<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * Compare item-wise for whether a's item is true or b's true.<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * &lt;p&gt;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * For multi-element items, comparison is true if any elements in a pair of items<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         * are true. Where the datasets have mismatched item sizes, the first element<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>         * of the dataset with smaller items is used for comparison.<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>         * @param a<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>         * @param b<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @return dataset where item is true if a || b is true<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         */<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        public static BooleanDataset logicalOr(Object a, Object b, BooleanDataset o) {<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span><a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span><a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                it.setOutputDouble(true);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                final int as = da.getElementsPerItem();<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                final int bs = db.getElementsPerItem();<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                if (as &gt; bs) {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        while (it.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                final boolean bb = db.getElementBooleanAbs(it.bIndex);<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                boolean rb = true;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        rb |= da.getElementBooleanAbs(it.aIndex + j) || bb;<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                r.setAbs(it.oIndex, rb);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                } else if (as &lt; bs) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        while (it.hasNext()) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                final boolean ab = da.getElementBooleanAbs(it.aIndex);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                boolean rb = true;<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        rb |= ab || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                }<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                r.setAbs(it.oIndex, rb);<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        if (as == 1) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) || db.getElementBooleanAbs(it.bIndex));<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        } else {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        boolean rb = true;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) || db.getElementBooleanAbs(it.bIndex + j);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                        }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span><a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                return r;<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>        /**<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>         * &lt;p&gt;<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * of the dataset with smaller items is used for comparison.<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @param a<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @param b<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * @return dataset where item is true if a ^ b is true<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         */<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        public static BooleanDataset logicalXor(Object a, Object b) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                return logicalXor(a, b, null);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>        /**<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         * Compare item-wise for whether a's item is true or b's true exclusively.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * &lt;p&gt;<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         * For multi-element items, comparison is true if one element in a pair of items<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * is true. Where the datasets have mismatched item sizes, the first element<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * of the dataset with smaller items is used for comparison.<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @param a<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         * @param b<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>         * @return dataset where item is true if a ^ b is true<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>         */<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        public static BooleanDataset logicalXor(Object a, Object b, BooleanDataset o) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), db.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, r);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                it.setOutputDouble(true);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                final int as = da.getElementsPerItem();<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                final int bs = db.getElementsPerItem();<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                if (as &gt; bs) {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        while (it.hasNext()) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                boolean rb = db.getElementBooleanAbs(it.bIndex);<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                for (int j = 0; j &lt; as; j++) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        rb ^= da.getElementBooleanAbs(it.aIndex + j);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                r.setAbs(it.oIndex, rb);<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        }<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                } else if (as &lt; bs) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        while (it.hasNext()) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                boolean rb = da.getElementBooleanAbs(it.aIndex);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        rb ^= db.getElementBooleanAbs(it.bIndex + j);<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                }<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                r.setAbs(it.oIndex, rb);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                } else {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                        if (as == 1) {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                while (it.hasNext()) {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                        r.setAbs(it.oIndex, da.getElementBooleanAbs(it.aIndex) ^ db.getElementBooleanAbs(it.bIndex));<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        boolean rb = true;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        for (int j = 0; rb &amp;&amp; j &lt; bs; j++) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                rb &amp;= da.getElementBooleanAbs(it.aIndex + j) ^ db.getElementBooleanAbs(it.bIndex + j);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        }<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                }<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                }<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span><a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                return r;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>        }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span><a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>        /**<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>         * Create a list of indices of positions where items are non-zero<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * @param a<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         * @return list of positions as integer datasets<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         */<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>        public static List&lt;IntegerDataset&gt; nonZero(Dataset a) {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                final int rank = a.getRank();<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                final List&lt;List&lt;Integer&gt;&gt; indices = new ArrayList&lt;List&lt;Integer&gt;&gt;();<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                List&lt;IntegerDataset&gt; indexList = new ArrayList&lt;IntegerDataset&gt;();<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span><a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                if (rank == 0)<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                        return indexList;<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span><a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        indices.add(new ArrayList&lt;Integer&gt;());<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                final IndexIterator iter = a.getIterator(true);<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                final int[] pos = iter.getPos();<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                while (iter.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                        if (a.getElementBooleanAbs(iter.index)) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                for (int j = 0; j &lt; rank; j++) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        indices.get(j).add(pos[j]);<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                        }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                }<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                for (int j = 0; j &lt; rank; j++) {<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        indexList.add((IntegerDataset) DatasetFactory.createFromList(IntegerDataset.class, indices.get(j)));<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                }<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                return indexList;<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>        }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>        /**<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         * &lt;p&gt;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>         * @param a<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         */<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>        public static BooleanDataset isNaN(Object a) {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                return isNaN(a, null);<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>        /**<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>         * Check item-wise for whether any a's elements are Not-a-Numbers<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>         * &lt;p&gt;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>         * For multi-element items, check is true if any elements in an item is Not-a-Number.<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         * @param a<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>         * @return dataset where item is true if any of its elements are NaNs<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>         */<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>        public static BooleanDataset isNaN(Object a, BooleanDataset o) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span><a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span><a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span><a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                if (!da.hasFloatingPointElements()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        if (r == o) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                r.fill(false);<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        }<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                        return r;<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                it.setOutputDouble(true);<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                final int as = da.getElementsPerItem();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                if (as == 1) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        while (it.hasNext()) {<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                r.setAbs(it.oIndex, Double.isNaN(it.aDouble));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                } else {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                while (it.hasNext()) {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                        r.setAbs(it.oIndex, Double.isNaN(it.aDouble) || Double.isNaN(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                        } else {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        boolean rb = false;<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                                rb &amp;= Double.isNaN(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                        }<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        }<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                return r;<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        /**<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         * &lt;p&gt;<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * @param a<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         */<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        public static BooleanDataset isInfinite(Object a) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                return isInfinite(a, null);<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        /**<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>         * Check item-wise for whether any a's elements are infinite<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>         * &lt;p&gt;<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>         * For multi-element items, check is true if any elements in an item is infinite<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         * @param a<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>         * @return dataset where item is true if any of its elements are infinite<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>         */<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public static BooleanDataset isInfinite(Object a, BooleanDataset o) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span><a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                if (!da.hasFloatingPointElements()) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        if (r == o) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                r.fill(false);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                        }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        return r;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                it.setOutputDouble(true);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                final int as = da.getElementsPerItem();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span><a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                if (as == 1) {<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                        while (it.hasNext()) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                r.setAbs(it.oIndex, Double.isInfinite(it.aDouble));<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                } else {<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                while (it.hasNext()) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        r.setAbs(it.oIndex, Double.isInfinite(it.aDouble) || Double.isInfinite(da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                }<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        } else {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                while (it.hasNext()) {<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        boolean rb = false;<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                rb &amp;= Double.isInfinite(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        }<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                return r;<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>        }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span><a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        /**<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         * &lt;p&gt;<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>         * @param a<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>         */<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>        public static BooleanDataset isPositiveInfinite(Object a) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                return isEqual(a, null, Double.POSITIVE_INFINITY);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>        }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span><a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>        /**<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * Check item-wise for whether any a's elements are positive infinite<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         * &lt;p&gt;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>         * For multi-element items, the check is true if any elements in an item is positive infinite<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>         * @param a<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>         * @return dataset where items are true if any of its elements are positive infinite<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>         */<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>        public static BooleanDataset isPositiveInfinite(Object a, BooleanDataset o) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                return isEqual(a, o, Double.POSITIVE_INFINITY);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span><a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>        /**<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * &lt;p&gt;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>         * @param a<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>         */<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        public static BooleanDataset isNegativeInfinite(Object a) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                return isEqual(a, null, Double.NEGATIVE_INFINITY);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>        }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span><a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>        /**<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         * Check item-wise for whether any a's elements are negative infinite<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>         * &lt;p&gt;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>         * For multi-element items, the check is true if any elements in an item is negative infinite<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>         * @param a<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>         * @return dataset where items are true if any of its elements are negative infinite<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>         */<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>        public static BooleanDataset isNegativeInfinite(Object a, BooleanDataset o) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                return isEqual(a, o, Double.NEGATIVE_INFINITY);<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span><a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>        /**<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>         * Check item-wise for whether any a's elements match given item<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>         * &lt;p&gt;<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>         * For multi-element items, the check is true if any elements in an item matches<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>         * @param a<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>         * @param match<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>         * @return dataset where items are true if any of its elements match<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>         */<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>        private static BooleanDataset isEqual(Object a, BooleanDataset o, final double match) {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span><a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span><a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                if (!da.hasFloatingPointElements()) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        if (r == o) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                r.fill(false);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                        }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                        return r;<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                }<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                it.setOutputDouble(true);<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                final int as = da.getElementsPerItem();<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                if (as == 1) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                r.setAbs(it.oIndex, it.aDouble == match);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        final double rv = it.aDouble;<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                        r.setAbs(it.oIndex, (rv == match) || (iv == match));<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        } else {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                while (it.hasNext()) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                        boolean rb = false;<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                rb &amp;= da.getElementDoubleAbs(it.aIndex + j) == match;<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                        }<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                }<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                return r;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>        }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>        /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * &lt;p&gt;<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>         * @param a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>         */<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>        public static BooleanDataset isFinite(Object a) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                return isFinite(a, null);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>        }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>        /**<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * Check item-wise for whether any a's elements are finite (or not infinite and not Not-a-Number)<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * &lt;p&gt;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * For multi-element items, check is true if any elements in an item is finite<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         * @param a<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>         * @param o output can be null - in which case, a new dataset is created<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>         * @return dataset where item is true if any of its elements are finite<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>         */<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>        public static BooleanDataset isFinite(Object a, BooleanDataset o) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span><a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                List&lt;int[]&gt; sl = BroadcastUtils.broadcastShapes(da.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                final BooleanDataset r = o == null ? DatasetFactory.zeros(BooleanDataset.class, sl.get(0)) : o;<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                if (!da.hasFloatingPointElements()) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        r.fill(true);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        return r;<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span><a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, r);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                it.setOutputDouble(true);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                final int as = da.getElementsPerItem();<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                if (as == 1) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                        while (it.hasNext()) {<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                final double rv = it.aDouble;<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv)));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                        }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                } else {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                        if (da instanceof ComplexFloatDataset || da instanceof ComplexDoubleDataset) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                while (it.hasNext()) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                        final double rv = it.aDouble;<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        final double iv = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                        r.setAbs(it.oIndex, !(Double.isInfinite(rv) || Double.isNaN(rv) || Double.isInfinite(iv) || Double.isNaN(iv)));<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                        } else {<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                while (it.hasNext()) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        boolean rb = false;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        for (int j = 0; !rb &amp;&amp; j &lt; as; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                final double rv = it.aDouble;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                rb &amp;= !(Double.isInfinite(rv) || Double.isNaN(rv));<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        r.setAbs(it.oIndex, rb);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                }<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                return r;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>        }<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span><a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>        /**<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>         * Enumeration of monotonicity. NaNs are ignored or considered not equal<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>         */<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>        public static enum Monotonicity {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                /**<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                 * No order: x_0 != x_1 != x_2 ...<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                 */<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                NOT_ORDERED,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                /**<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                 * All equal: x_0 == x_1 == x_2 ...<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                 */<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                ALL_EQUAL,<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                /**<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                 * Strictly decreasing x_0 &gt; x_1 &gt; x_2 ...<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                 */<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                STRICTLY_DECREASING,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                /**<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                 * Non-increasing or weakly decreasing x_0 &gt;= x_1 &gt;= x_2 ...<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                 */<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                NONINCREASING,<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                /**<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                 * Non-decreasing or weakly increasing x_0 &lt;= x_1 &lt;= x_2 ...<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                 */<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                NONDECREASING,<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                /**<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                 * Strictly increasing x_0 &lt; x_1 &lt; x_2 ...<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                 */<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                STRICTLY_INCREASING,<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>        }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        /**<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         * @param a<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>         * @return true if all elements are in a monotonic order<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>         * @see #findMonotonicity(Object)<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>         */<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        public static boolean isMonotonic(Object a) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return findMonotonicity(a) != Monotonicity.NOT_ORDERED;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        /**<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         * @param a<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * @param monotonicity<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         * @return true if all elements are in given monotonic ordering<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         */<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>        public static boolean isMonotonic(Object a, Monotonicity monotonicity) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                if (da.getRank() &gt; 1) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span><a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                final IndexIterator it = da.getIterator();<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                double previous = Double.NaN;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span><a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                Boolean increasing = null;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                boolean equality = false;<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                while (it.hasNext()) { // look for first change<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        if (!Double.isNaN(next)) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                if (previous != next) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        increasing = previous &lt; next;<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        previous = next;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        break;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                } else if (!equality) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                        equality = true;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                                return false;<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                }<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                }<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span><a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                if (increasing == null) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                        if (equality)<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                return monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.NONINCREASING;<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                        return Double.isNaN(previous) ? monotonicity == Monotonicity.NOT_ORDERED : true;<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span><a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                if (increasing) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONINCREASING || monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                return false;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span><a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                        while (it.hasNext()) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                if (!Double.isNaN(next)) {<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        if (previous &gt; next) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                                return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                        } else if (previous &lt; next) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                previous = next;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                        } else if (!equality) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                                equality = true;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                                if (monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                                        return false;<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        }<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                }<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                        }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span><a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                        return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                }<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span><a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                if (monotonicity == Monotonicity.ALL_EQUAL || monotonicity == Monotonicity.NONDECREASING || monotonicity == Monotonicity.STRICTLY_INCREASING)<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        return false;<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                while (it.hasNext()) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                        if (!Double.isNaN(next)) {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                if (previous &lt; next) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        return monotonicity == Monotonicity.NOT_ORDERED;<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                } else if (previous &gt; next) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        previous = next;<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                } else if (!equality) {<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        equality = true;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        if (monotonicity == Monotonicity.STRICTLY_DECREASING)<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                return false;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                }<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span><a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                return monotonicity != Monotonicity.NOT_ORDERED;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>        }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span><a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>        /**<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         * @param a<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>         * @return true if all elements are in a strictly monotonic order<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>         * @see #findMonotonicity(Object)<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         */<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        public static boolean isStrictlyMonotonic(Object a) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                Monotonicity mono = findMonotonicity(a);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                return mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.STRICTLY_INCREASING;<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>        }<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span><a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>        /**<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         * Find monotonicity. NaNs are ignored or considered not equal<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>         * @param a<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>         * @return monotonicity<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>         */<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>        public static Monotonicity findMonotonicity(Object a) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                if (da.getRank() &gt; 1) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                        throw new IllegalArgumentException("Only 0 or 1D datasets are allowed");<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                if (da.getElementsPerItem() &gt; 1) {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                        throw new IllegalArgumentException("Cannot compare compound datsets");<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                }<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span><a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                final IndexIterator it = da.getIterator();<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                double previous = Double.NaN;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                while (Double.isNaN(previous) &amp;&amp; it.hasNext()) { // look for first non-NaN<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        previous = da.getElementDoubleAbs(it.index);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span><a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                Boolean increasing = null;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                boolean equality = false;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                while (it.hasNext()) { // look for first change<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                        if (!Double.isNaN(next)) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                if (previous != next) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                        increasing = previous &lt; next;<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        previous = next;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        break;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else if (!equality) {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        equality = true;<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span><a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                if (increasing == null) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                        return Double.isNaN(previous) ? Monotonicity.NOT_ORDERED : Monotonicity.ALL_EQUAL;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span><a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                if (increasing) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                double next = da.getElementDoubleAbs(it.index);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                if (!Double.isNaN(next)) {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                        if (previous &gt; next) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                return Monotonicity.NOT_ORDERED;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        } else if (previous &lt; next) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                previous = next;<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        } else if (!equality) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                equality = true;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                }<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                        }<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        return equality ? Monotonicity.NONDECREASING : Monotonicity.STRICTLY_INCREASING;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span><a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                while (it.hasNext()) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                        double next = da.getElementDoubleAbs(it.index);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                        if (!Double.isNaN(next)) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                if (previous &lt; next) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                        return Monotonicity.NOT_ORDERED;<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                } else if (previous &gt; next) {<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        previous = next;<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                } else if (!equality) {<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                        equality = true;<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                }<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                        }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return equality ? Monotonicity.NONINCREASING : Monotonicity.STRICTLY_DECREASING;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>}<a name="line.1767"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html
new file mode 100644
index 0000000..eb37f5c
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ComplexDoubleDataset.html
@@ -0,0 +1,1128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// GEN_COMMENT<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.complex.Complex;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Extend compound dataset to hold complex double values // PRIM_TYPE<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public class ComplexDoubleDataset extends CompoundDoubleDataset { // CLASS_TYPE<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        // pin UID to base class<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private static final int ISIZE = 2; // number of elements per item<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        @Override<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public int getDType() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                return Dataset.COMPLEX128; // DATA_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Create a null dataset<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        ComplexDoubleDataset() {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                super(ISIZE);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Create a zero-filled dataset of given shape<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param shape<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        ComplexDoubleDataset(final int... shape) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                super(ISIZE, shape);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Create a dataset using given data (real and imaginary parts are grouped in pairs)<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param data<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param shape (can be null to create 1D dataset)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        ComplexDoubleDataset(final double[] data, final int... shape) { // PRIM_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                super(ISIZE, data, shape);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * Copy a dataset<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param dataset<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        ComplexDoubleDataset(final ComplexDoubleDataset dataset) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                super(dataset);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * Create a dataset using given data (real and imaginary parts are given separately)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param realData<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param imagData<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @param shape (can be null or zero-length to create 1D dataset)<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        ComplexDoubleDataset(final double[] realData, final double[] imagData, int... shape) { // PRIM_TYPE<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                if (realData == null || imagData == null) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                int dsize = realData.length &gt; imagData.length ? imagData.length : realData.length;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                if (shape == null || shape.length == 0) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        shape = new int[] {dsize};<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                }<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                isize = ISIZE;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                size = ShapeUtils.calcSize(shape);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                if (size != dsize) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                        Arrays.toString(shape), dsize));<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>                try {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        odata = data = createArray(size);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                } catch (Throwable t) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        throw new IllegalArgumentException(t);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        data[n++] = realData[i];<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        data[n++] = imagData[i];<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * Create a dataset using given data (real and imaginary parts are given separately)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param real<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @param imag<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        ComplexDoubleDataset(final Dataset real, final Dataset imag) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                super(ISIZE, real.getShapeRef());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                real.checkCompatibility(imag);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                IndexIterator riter = real.getIterator();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                IndexIterator iiter = imag.getIterator();<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>                for (int i = 0; riter.hasNext() &amp;&amp; iiter.hasNext();) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        data[i++] = real.getElementDoubleAbs(riter.index); // ADD_CAST<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        data[i++] = imag.getElementDoubleAbs(iiter.index); // ADD_CAST<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>        /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * Copy and cast a dataset to this complex type<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param dataset<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        ComplexDoubleDataset(final Dataset dataset) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                super(ISIZE, dataset.getShapeRef());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                copyToView(dataset, this, true, false);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                offset = 0;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                stride = null;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                base = null;<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>                IndexIterator iter = dataset.getIterator();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                int disize = dataset.getElementsPerItem();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                if (disize == 1) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; iter.hasNext(); i += isize) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[i] = dataset.getElementDoubleAbs(iter.index); // ADD_CAST<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                } else {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        for (int i = 0; iter.hasNext(); i += isize) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                data[i] = dataset.getElementDoubleAbs(iter.index); // ADD_CAST<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                data[i+1] = dataset.getElementDoubleAbs(iter.index+1); // ADD_CAST<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public ComplexDoubleDataset clone() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                return new ComplexDoubleDataset(this);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        /**<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * <a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @param obj<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @return dataset with contents given by input<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        static ComplexDoubleDataset createFromObject(final Object obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                ComplexDoubleDataset result = new ComplexDoubleDataset();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>                try {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        result.odata = result.data = result.createArray(result.size);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                } catch (Throwable t) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        throw new IllegalArgumentException(t);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>                int[] pos = new int[result.shape.length];<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                result.fillData(obj, 0, pos);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return result;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>        /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         * @param stop<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         */<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        static ComplexDoubleDataset createRange(final double stop) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                return createRange(0, stop, 1);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>        /**<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @param start<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param stop<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @param step<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         */<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        static ComplexDoubleDataset createRange(final double start, final double stop, final double step) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                int size = calcSteps(start, stop, step);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                ComplexDoubleDataset result = new ComplexDoubleDataset(size);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                for (int i = 0; i &lt; size; i ++) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        result.data[i*ISIZE] = (start + i*step); // ADD_CAST<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return result;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>        /**<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         * @param shape<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * @return a dataset filled with ones<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        static ComplexDoubleDataset ones(final int... shape) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                return new ComplexDoubleDataset(shape).fill(1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>        @Override<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public ComplexDoubleDataset fill(final Object obj) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                setDirty();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                double vr = DTypeUtils.toReal(obj); // PRIM_TYPE // ADD_CAST<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                double vi = DTypeUtils.toImag(obj); // PRIM_TYPE // ADD_CAST<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                IndexIterator iter = getIterator();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                while (iter.hasNext()) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        data[iter.index] = vr;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        data[iter.index+1] = vi;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>                return this;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        @Override<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        public ComplexDoubleDataset getView(boolean deepCopyMetadata) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                ComplexDoubleDataset view = new ComplexDoubleDataset();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                view.data = data;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                return view;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>        /**<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         * Get complex value at absolute index in the internal array.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         * <a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         *<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @param index absolute index<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @return value<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         */<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public Complex getComplexAbs(final int index) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                return new Complex(data[index], data[index+1]);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>        @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public Object getObjectAbs(final int index) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new Complex(data[index], data[index+1]);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        public String getStringAbs(final int index) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                double di = data[index + 1]; // PRIM_TYPE<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                if (stringFormat == null) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        return di &gt;= 0 ? String.format("%.8g + %.8gj", data[index], di) : // FORMAT_STRING<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                String.format("%.8g - %.8gj", data[index], -di); // FORMAT_STRING<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                StringBuilder s = new StringBuilder();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                s.append(stringFormat.format(data[index]));<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                if (di &gt;= 0) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        s.append(" + ");<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        s.append(stringFormat.format(di));<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                } else {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        s.append(" - ");<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        s.append(stringFormat.format(-di));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                s.append('j');<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return s.toString();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>        /**<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * Set values at absolute index in the internal array.<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * <a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @param index absolute index<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @param val new values<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        @SuppressWarnings("cast")<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        public void setAbs(final int index, final Complex val) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                setAbs(index, (double) val.getReal(), (double) val.getImaginary()); // PRIM_TYPE<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>        @SuppressWarnings("cast")<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                setAbs(index, (double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)); // PRIM_TYPE<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * Set item at index to complex value given by real and imaginary parts <a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param index absolute index<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param real<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @param imag<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         */<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public void setAbs(final int index, final double real, final double imag) { // PRIM_TYPE<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                setDirty();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                data[index] = real;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                data[index+1] = imag;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>        /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @return item in first position<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @since 2.0<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public Complex get() {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                int n = getFirst1DIndex();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                return z;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>        /**<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @param i<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         * @return item in given position<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         */<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        public Complex get(final int i) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                int n = get1DIndex(i);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                return z;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        /**<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @param i<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param j<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @return item in given position<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         */<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        public Complex get(final int i, final int j) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                int n = get1DIndex(i, j);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                return z;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>        /**<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         * @param pos<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return item in given position<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        public Complex get(final int... pos) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                int n = get1DIndex(pos);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return z;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        @Override<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public Object getObject() {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                return get();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public Object getObject(final int i) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return get(i);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>        @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        public Object getObject(final int i, final int j) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                return get(i, j);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>        @Override<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        public Object getObject(final int... pos) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                return getComplex(pos);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        /**<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @return item in first position<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         * @since 2.0<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        @SuppressWarnings("cast")<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public double getReal() { // PRIM_TYPE<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                return (double) getFirstValue(); // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        }<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>        /**<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         * @param i<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @return item in given position<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         */<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        @SuppressWarnings("cast")<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        public double getReal(final int i) { // PRIM_TYPE<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                return (double) getFirstValue(i); // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>        /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * @param i<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param j<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        @SuppressWarnings("cast")<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        public double getReal(final int i, final int j) { // PRIM_TYPE<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                return (double) getFirstValue(i, j); // PRIM_TYPE<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>        /**<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @param pos<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         * @return item in given position<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         */<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @SuppressWarnings("cast")<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public double getReal(final int... pos) { // PRIM_TYPE<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return (double) getFirstValue(pos); // PRIM_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * @return item in first position<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         * @since 2.0<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         */<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        public double getImag() { // PRIM_TYPE<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                return data[getFirst1DIndex() + 1];<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>        /**<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @param i<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * @return item in given position<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         */<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        public double getImag(final int i) { // PRIM_TYPE<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                return data[get1DIndex(i) + 1];<a name="line.409"></a>
+<span class="sourceLineNo">410</span>        }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>        /**<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * @param i<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * @param j<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @return item in given position<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         */<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public double getImag(final int i, final int j) { // PRIM_TYPE<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return data[get1DIndex(i, j) + 1];<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        /**<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         * @param pos<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @return item in given position<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         */<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        public double getImag(final int... pos) { // PRIM_TYPE<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                return data[get1DIndex(pos) + 1];<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>        /**<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * @return item in first position<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * @since 2.0<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         */<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        public Complex getComplex() {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return get();<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @param i<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @return item in given position<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         */<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        public Complex getComplex(final int i) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                return get(i);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>        /**<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param i<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * @param j<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @return item in given position<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public Complex getComplex(final int i, final int j) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                return get(i, j);<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>        /**<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * @param pos<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @return item in given position<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         */<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        public Complex getComplex(final int... pos) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                return get(pos);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>        @SuppressWarnings("cast")<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public void set(final Object obj, final int i) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                setItem(new double[] {(double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)}, i); // PRIM_TYPE<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @SuppressWarnings("cast")<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        public void set(final Object obj, final int i, final int j) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                setItem(new double[] {(double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)}, i, j); // PRIM_TYPE<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>        @SuppressWarnings("cast")<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        @Override<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public void set(final Object obj, int... pos) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        pos = new int[shape.length];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>                setItem(new double[] {(double) DTypeUtils.toReal(obj), (double) DTypeUtils.toImag(obj)}, pos); // PRIM_TYPE<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>        /**<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         * Set real and imaginary values at given position<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param dr<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * @param di<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param i<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        public void set(final double dr, final double di, final int i) { // PRIM_TYPE<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                setItem(new double[] {dr, di}, i); // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>        /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         * Set real and imaginary values at given position<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         * @param dr<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * @param di<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         * @param i<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * @param j<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         */<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        public void set(final double dr, final double di, final int i, final int j) { // PRIM_TYPE<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                setItem(new double[] {dr, di}, i, j); // PRIM_TYPE<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>        /**<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * Set real and imaginary values at given position<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param dr<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         * @param di<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         * @param pos<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         * @since 2.0<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         */<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public void set(final double dr, final double di, final int... pos) { // PRIM_TYPE<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                setItem(new double[] {dr, di}, pos); // PRIM_TYPE<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        /**<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * @since 2.0<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         */<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        public DoubleDataset getRealPart() { // CLASS_TYPE<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                return getElements(0);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>        /**<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         * @since 2.0<a name="line.525"></a>
+<span class="sourceLineNo">526</span>         */<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public DoubleDataset getRealView() { // CLASS_TYPE<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getElementsView(0);<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * @return imaginary part of dataset as new dataset<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         * @since 2.0<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         */<a name="line.535"></a>
+<span class="sourceLineNo">536</span>        public DoubleDataset getImaginaryPart() { // CLASS_TYPE<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return getElements(1);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>        /**<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @return view of imaginary values<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         */<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public DoubleDataset getImaginaryView() { // CLASS_TYPE<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return getElementsView(1);<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>        @Override<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        public Number max(boolean... switches) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public Number min(boolean... switches) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>        @Override<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        public Object sum(boolean... switches) { // FIXME<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                double[] sum = (double[]) super.sum(switches);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                return new Complex(sum[0], sum[1]);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>        @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        public Object mean(boolean... switches) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                double[] mean = (double[]) super.mean(switches);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                return new Complex(mean[0], mean[1]);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>        @Override<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        public int[] maxPos(boolean... switches) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        }<a name="line.572"></a>
+<span class="sourceLineNo">573</span><a name="line.573"></a>
+<span class="sourceLineNo">574</span>        @Override<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public int[] minPos(boolean... switches) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        @Override<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        public ComplexDoubleDataset getSlice(final SliceIterator siter) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                ComplexDoubleDataset result = new ComplexDoubleDataset(siter.getShape());<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                IndexIterator riter = result.getIterator();<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        rdata[riter.index] = data[siter.index];<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        rdata[riter.index+1] = data[siter.index+1];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                return result;<a name="line.591"></a>
+<span class="sourceLineNo">592</span>        }<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>        @Override<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        ComplexDoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                setDirty();<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.597"></a>
+<span class="sourceLineNo">598</span><a name="line.598"></a>
+<span class="sourceLineNo">599</span>                if (d instanceof ComplexFloatDataset || d instanceof ComplexDoubleDataset) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        while (it.hasNext()) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                data[it.aIndex + 1] = d.getElementDoubleAbs(it.bIndex + 1); // GET_ELEMENT_WITH_CAST<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        }<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                } else {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        while (it.hasNext()) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                data[it.aIndex + 1] = 0;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                return this;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>        @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        public ComplexDoubleDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                setDirty();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                if (o instanceof ComplexFloatDataset) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        ComplexFloatDataset zds = (ComplexFloatDataset) o;<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                throw new IllegalArgumentException(String.format(<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                                Arrays.toString(siter.getShape())));<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        IndexIterator oiter = zds.getIterator();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                        float[] odata = zds.data;<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                data[siter.index] = odata[oiter.index];<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                data[siter.index+1] = odata[oiter.index+1];<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                } else if (o instanceof ComplexDoubleDataset) { // IGNORE_CLASS<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        ComplexDoubleDataset zds = (ComplexDoubleDataset) o; // IGNORE_CLASS<a name="line.633"></a>
+<span class="sourceLineNo">634</span><a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                throw new IllegalArgumentException(String.format(<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                                                Arrays.toString(siter.getShape())));<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        IndexIterator oiter = zds.getIterator();<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        double[] odata = zds.data;<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                data[siter.index] = odata[oiter.index]; // PRIM_TYPE // ADD_CAST<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                data[siter.index+1] = odata[oiter.index+1]; // PRIM_TYPE // ADD_CAST<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        }<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                } else if (o instanceof IDataset) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        super.setSlice(o, siter);<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                } else {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        try {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                double vr = DTypeUtils.toReal(o); // PRIM_TYPE // ADD_CAST<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                double vi = DTypeUtils.toImag(o); // PRIM_TYPE // ADD_CAST<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                while (siter.hasNext()) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                        data[siter.index]     = vr;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                        data[siter.index + 1] = vi;<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        } catch (IllegalArgumentException e) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                return this;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span><a name="line.665"></a>
+<span class="sourceLineNo">666</span>        @Override<a name="line.666"></a>
+<span class="sourceLineNo">667</span>        public ComplexDoubleDataset iadd(final Object b) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                setDirty();<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                if (bds.getSize() == 1) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        final IndexIterator it = getIterator();<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        final int bOffset = bds.getOffset();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                        if (useLong) { // note no complex longs<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                while (it.hasNext()) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                        data[it.index] += lb;<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        } else {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                        while (it.hasNext()) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                                data[it.index] += db;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                } else {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                        while (it.hasNext()) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                                data[it.index]     += db;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                                data[it.index + 1] += vi;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                } else {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        it.setOutputDouble(!useLong);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        if (useLong) { // note no complex longs<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                while (it.hasNext()) {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        data[it.aIndex] += it.bLong;<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        } else {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                if (bds.isComplex()) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                        while (it.hasNext()) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                                data[it.aIndex]     += it.bDouble;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                                data[it.aIndex + 1] += bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                        }<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                } else {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        while (it.hasNext()) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                                data[it.aIndex] += it.bDouble;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                return this;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>        @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        public ComplexDoubleDataset isubtract(final Object b) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                setDirty();<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                if (bds.getSize() == 1) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        final IndexIterator it = getIterator();<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        final int bOffset = bds.getOffset();<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                        if (useLong) { // note no complex longs<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                while (it.hasNext()) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        data[it.index] -= lb;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        } else {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                        while (it.hasNext()) {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                                data[it.index] -= db;<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                        }<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                } else {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                        while (it.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                                data[it.index]     -= db;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                                data[it.index + 1] -= vi;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                } else {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        it.setOutputDouble(!useLong);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        if (useLong) { // note no complex longs<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                while (it.hasNext()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                        data[it.aIndex] -= it.bLong;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                }<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        } else {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                if (bds.isComplex()) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                        while (it.hasNext()) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                                data[it.aIndex]     -= it.bDouble;<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                                data[it.aIndex + 1] -= bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                } else {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                        while (it.hasNext()) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                data[it.aIndex] -= it.bDouble;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        }<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                return this;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        @Override<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public ComplexDoubleDataset imultiply(final Object b) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                setDirty();<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                if (bds.getSize() == 1) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        final IndexIterator it = getIterator();<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        final int bOffset = bds.getOffset();<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        if (useLong) { // note no complex longs<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                while (it.hasNext()) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                        data[it.index]     *= r2;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                        data[it.index + 1] *= r2;<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                }<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        } else {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                        while (it.hasNext()) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                                data[it.index]     *= r2;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                                data[it.index + 1] *= r2;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                        }<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                } else {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                        while (it.hasNext()) {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                                double r1 = data[it.index];<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                                double i1 = data[it.index + 1];<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                                data[it.index]     = (r1*r2 - i1*i2); // ADD_CAST<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                                data[it.index + 1] = (r1*i2 + i1*r2); // ADD_CAST<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                        }<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                } else {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        it.setOutputDouble(!useLong);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        if (useLong) { // note no complex longs<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                while (it.hasNext()) {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                        data[it.aIndex]     *= it.bDouble;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                        data[it.aIndex + 1] *= it.bDouble;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                }<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        } else {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                if (bds.isComplex()) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                        while (it.hasNext()) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                double r1 = it.aDouble;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                                double r2 = it.bDouble;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                                double i1 = data[it.aIndex + 1];<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                                data[it.aIndex]     = (r1*r2 - i1*i2); // ADD_CAST<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                                data[it.aIndex + 1] = (r1*i2 + i1*r2); // ADD_CAST<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                        }<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                } else {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                        while (it.hasNext()) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                                data[it.aIndex]     *= it.bDouble;<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                                data[it.aIndex + 1] *= it.bDouble;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                        }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                }<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        }<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                return this;<a name="line.823"></a>
+<span class="sourceLineNo">824</span>        }<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>        @Override<a name="line.826"></a>
+<span class="sourceLineNo">827</span>        public ComplexDoubleDataset idivide(final Object b) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                setDirty();<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                if (bds.getSize() == 1) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                        final IndexIterator it = getIterator();<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        final int bOffset = bds.getOffset();<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                        if (useLong) { // note no complex longs<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                while (it.hasNext()) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        data[it.index]     /= r2;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        data[it.index + 1] /= r2;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                }<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        } else {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                        while (it.hasNext()) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                data[it.index]     /= r2;<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                data[it.index + 1] /= r2;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                } else {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                double q = r2/i2;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                                double den = r2*q + i2;<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                        double r1 = data[it.index];<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                                        double i1 = data[it.index + 1];<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                                        data[it.index]     = ((r1*q + i1) / den); // ADD_CAST<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                                        data[it.index + 1] = ((i1*q - r1) / den); // ADD_CAST<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                                }<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                        } else {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                double q = i2/r2;<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                                double den = i2*q + r2;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                                if (den == 0) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                                        while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                                                data[it.index]     = Double.NaN; // CLASS_TYPE<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                                                data[it.index + 1] = Double.NaN; // CLASS_TYPE<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                                        }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                } else {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                        while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                                                double r1 = data[it.index];<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                                                double i1 = data[it.index + 1];<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                                data[it.index]     = ((i1 * q + r1) / den); // ADD_CAST<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                                                data[it.index + 1] = ((i1 - r1 * q) / den); // ADD_CAST<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                                        }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        }<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                } else {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                        it.setOutputDouble(!useLong);<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        if (useLong) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                while (it.hasNext()) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                        data[it.aIndex]     /= it.bLong;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        data[it.aIndex + 1] /= it.bLong;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                }<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        } else {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                if (bds.isComplex()) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                        while (it.hasNext()) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                                double r1 = it.aDouble;<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                                double r2 = it.bDouble;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                                double i1 = data[it.aIndex + 1];<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                                if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                        double q = r2/i2;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                                        double den = r2*q + i2;<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                        data[it.aIndex]     = ((r1*q + i1) / den); // ADD_CAST<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                        data[it.aIndex + 1] = ((i1*q - r1) / den); // ADD_CAST<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                } else {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                        double q = i2/r2;<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                        double den = i2*q + r2;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                                        if (den == 0) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                                                data[it.aIndex]     = Double.NaN; // CLASS_TYPE<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                                                data[it.aIndex + 1] = Double.NaN; // CLASS_TYPE<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                                        } else {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                                                data[it.aIndex]     = ((i1 * q + r1) / den); // ADD_CAST<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                                                data[it.aIndex + 1] = ((i1 - r1 * q) / den); // ADD_CAST<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                                        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                                }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        }<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                } else {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        while (it.hasNext()) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                                data[it.aIndex]     /= it.bDouble;<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                                data[it.aIndex + 1] /= it.bDouble;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                return this;<a name="line.917"></a>
+<span class="sourceLineNo">918</span>        }<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>        @Override<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        public ComplexDoubleDataset iremainder(final Object b) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        @Override<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        public ComplexDoubleDataset ipower(final Object b) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                setDirty();<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                if (bds.getSize() == 1) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        final IndexIterator it = getIterator();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        final int bOffset = bds.getOffset();<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                while (it.hasNext()) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(r2);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                        data[it.index]     = zd.getReal(); // ADD_CAST<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        data[it.index + 1] = zd.getImaginary(); // ADD_CAST<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                }<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        } else {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                final Complex zv = new Complex(r2, bds.getElementDoubleAbs(bOffset + 1));<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                while (it.hasNext()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(zv);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        data[it.index]     = zd.getReal(); // ADD_CAST<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        data[it.index + 1] = zd.getImaginary(); // ADD_CAST<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                } else {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        it.setOutputDouble(true);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        if (bds.isComplex()) {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                while (it.hasNext()) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(zv);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        data[it.aIndex]     = zd.getReal(); // ADD_CAST<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        data[it.aIndex + 1] = zd.getImaginary(); // ADD_CAST<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                }<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        } else {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                while (it.hasNext()) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(it.bDouble);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        data[it.aIndex]     = zd.getReal(); // ADD_CAST<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                        data[it.aIndex + 1] = zd.getImaginary(); // ADD_CAST<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                }<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                return this;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>        @Override<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public double residual(final Object b, Dataset w, boolean ignoreNaNs) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                it.setOutputDouble(true);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                double sum = 0;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                double comp = 0;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                final int bis = bds.getElementsPerItem();<a name="line.975"></a>
+<span class="sourceLineNo">976</span><a name="line.976"></a>
+<span class="sourceLineNo">977</span>                if (bis == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        if (w == null) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                while (it.hasNext()) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                        double diffi = data[it.aIndex + 1];<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                continue;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        }<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        double err = diffr * diffr - comp;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        double temp = sum + err;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        comp = (temp - sum) - err;<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                        sum = temp;<a name="line.988"></a>
+<span class="sourceLineNo">989</span><a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        err = diffi * diffi - comp;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                        temp = sum + err;<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        comp = (temp - sum) - err;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                        sum = temp;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        } else {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                IndexIterator itw = w.getIterator();<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        double diffi = data[it.aIndex + 1];<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                                continue;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        double temp = sum + err;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        comp = (temp - sum) - err;<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                        sum = temp;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        err = diffi * diffi * dw - comp;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                        temp = sum + err;<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                        comp = (temp - sum) - err;<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                        sum = temp;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                } else {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                        if (w == null) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                continue;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                        double err = diffr * diffr - comp;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        double temp = sum + err;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        comp = (temp - sum) - err;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                        sum = temp;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                        err = diffi * diffi - comp;<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        temp = sum + err;<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        comp = (temp - sum) - err;<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                        sum = temp;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                }<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        } else {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                IndexIterator itw = w.getIterator();<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                                continue;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                        double temp = sum + err;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                        comp = (temp - sum) - err;<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        sum = temp;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                        err = diffi * diffi * dw - comp;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        temp = sum + err;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                        comp = (temp - sum) - err;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                        sum = temp;<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                }<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        }<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                return sum;<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>}<a name="line.1056"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html
new file mode 100644
index 0000000..2c5cc01
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ComplexFloatDataset.html
@@ -0,0 +1,1119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from ComplexDoubleDataset.java by fromcpxdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.complex.Complex;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Extend compound dataset to hold complex float values // PRIM_TYPE<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public class ComplexFloatDataset extends CompoundFloatDataset { // CLASS_TYPE<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        // pin UID to base class<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private static final int ISIZE = 2; // number of elements per item<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        @Override<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public int getDType() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                return Dataset.COMPLEX64; // DATA_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Create a null dataset<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        ComplexFloatDataset() {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                super(ISIZE);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Create a zero-filled dataset of given shape<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param shape<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        ComplexFloatDataset(final int... shape) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                super(ISIZE, shape);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Create a dataset using given data (real and imaginary parts are grouped in pairs)<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param data<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param shape (can be null to create 1D dataset)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        ComplexFloatDataset(final float[] data, final int... shape) { // PRIM_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                super(ISIZE, data, shape);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * Copy a dataset<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param dataset<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        ComplexFloatDataset(final ComplexFloatDataset dataset) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                super(dataset);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * Create a dataset using given data (real and imaginary parts are given separately)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param realData<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param imagData<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @param shape (can be null or zero-length to create 1D dataset)<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        ComplexFloatDataset(final float[] realData, final float[] imagData, int... shape) { // PRIM_TYPE<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                if (realData == null || imagData == null) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                int dsize = realData.length &gt; imagData.length ? imagData.length : realData.length;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                if (shape == null || shape.length == 0) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        shape = new int[] {dsize};<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                }<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                isize = ISIZE;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                size = ShapeUtils.calcSize(shape);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                if (size != dsize) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                        Arrays.toString(shape), dsize));<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>                try {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        odata = data = createArray(size);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                } catch (Throwable t) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        throw new IllegalArgumentException(t);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        data[n++] = realData[i];<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        data[n++] = imagData[i];<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * Create a dataset using given data (real and imaginary parts are given separately)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param real<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @param imag<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        ComplexFloatDataset(final Dataset real, final Dataset imag) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                super(ISIZE, real.getShapeRef());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                real.checkCompatibility(imag);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                IndexIterator riter = real.getIterator();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                IndexIterator iiter = imag.getIterator();<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>                for (int i = 0; riter.hasNext() &amp;&amp; iiter.hasNext();) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        data[i++] = (float) real.getElementDoubleAbs(riter.index); // ADD_CAST<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        data[i++] = (float) imag.getElementDoubleAbs(iiter.index); // ADD_CAST<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>        /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * Copy and cast a dataset to this complex type<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param dataset<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        ComplexFloatDataset(final Dataset dataset) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                super(ISIZE, dataset.getShapeRef());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                copyToView(dataset, this, true, false);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                offset = 0;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                stride = null;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                base = null;<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>                IndexIterator iter = dataset.getIterator();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                int disize = dataset.getElementsPerItem();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                if (disize == 1) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        for (int i = 0; iter.hasNext(); i += isize) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                data[i] = (float) dataset.getElementDoubleAbs(iter.index); // ADD_CAST<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                } else {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        for (int i = 0; iter.hasNext(); i += isize) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                data[i] = (float) dataset.getElementDoubleAbs(iter.index); // ADD_CAST<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                data[i+1] = (float) dataset.getElementDoubleAbs(iter.index+1); // ADD_CAST<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        @Override<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public ComplexFloatDataset clone() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                return new ComplexFloatDataset(this);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        /**<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         *<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @param obj<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @return dataset with contents given by input<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        static ComplexFloatDataset createFromObject(final Object obj) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                ComplexFloatDataset result = new ComplexFloatDataset();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>                try {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        result.odata = result.data = result.createArray(result.size);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                } catch (Throwable t) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        throw new IllegalArgumentException(t);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>                int[] pos = new int[result.shape.length];<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                result.fillData(obj, 0, pos);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return result;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>        /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         * @param stop<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         */<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        static ComplexFloatDataset createRange(final double stop) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                return createRange(0, stop, 1);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>        /**<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @param start<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param stop<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @param step<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         */<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        static ComplexFloatDataset createRange(final double start, final double stop, final double step) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                int size = calcSteps(start, stop, step);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                ComplexFloatDataset result = new ComplexFloatDataset(size);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                for (int i = 0; i &lt; size; i ++) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        result.data[i*ISIZE] = (float) (start + i*step); // ADD_CAST<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                return result;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>        /**<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         * @param shape<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * @return a dataset filled with ones<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        static ComplexFloatDataset ones(final int... shape) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                return new ComplexFloatDataset(shape).fill(1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>        @Override<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public ComplexFloatDataset fill(final Object obj) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                setDirty();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                float vr = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // ADD_CAST<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                float vi = (float) DTypeUtils.toImag(obj); // PRIM_TYPE // ADD_CAST<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                IndexIterator iter = getIterator();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                while (iter.hasNext()) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        data[iter.index] = vr;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        data[iter.index+1] = vi;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>                return this;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        @Override<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        public ComplexFloatDataset getView(boolean deepCopyMetadata) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                ComplexFloatDataset view = new ComplexFloatDataset();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                view.data = data;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                return view;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>        /**<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         * Get complex value at absolute index in the internal array.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         *<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         *<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @param index absolute index<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @return value<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         */<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public Complex getComplexAbs(final int index) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                return new Complex(data[index], data[index+1]);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>        @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public Object getObjectAbs(final int index) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return new Complex(data[index], data[index+1]);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        public String getStringAbs(final int index) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                float di = data[index + 1]; // PRIM_TYPE<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                if (stringFormat == null) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        return di &gt;= 0 ? String.format("%.8g + %.8gj", data[index], di) : // FORMAT_STRING<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                String.format("%.8g - %.8gj", data[index], -di); // FORMAT_STRING<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                StringBuilder s = new StringBuilder();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                s.append(stringFormat.format(data[index]));<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                if (di &gt;= 0) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        s.append(" + ");<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        s.append(stringFormat.format(di));<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                } else {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        s.append(" - ");<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        s.append(stringFormat.format(-di));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                s.append('j');<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                return s.toString();<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>        /**<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * Set values at absolute index in the internal array.<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         *<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * This is an internal method with no checks so can be dangerous. Use with care or ideally with an iterator.<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @param index absolute index<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @param val new values<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        public void setAbs(final int index, final Complex val) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                setAbs(index, (float) val.getReal(), (float) val.getImaginary()); // PRIM_TYPE<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        @Override<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                setAbs(index, (float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)); // PRIM_TYPE<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>        /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * Set item at index to complex value given by real and imaginary parts<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param index absolute index<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param real<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param imag<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         */<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public void setAbs(final int index, final float real, final float imag) { // PRIM_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                setDirty();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                data[index] = real;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                data[index+1] = imag;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>        /**<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @return item in first position<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @since 2.0<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public Complex get() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                int n = getFirst1DIndex();<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                return z;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>        /**<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @param i<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @return item in given position<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         */<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        public Complex get(final int i) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                int n = get1DIndex(i);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return z;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        }<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>        /**<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param i<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param j<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return item in given position<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public Complex get(final int i, final int j) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                int n = get1DIndex(i, j);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                return z;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @param pos<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @return item in given position<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         */<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public Complex get(final int... pos) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                int n = get1DIndex(pos);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                Complex z = new Complex(data[n], data[n+1]);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return z;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        public Object getObject() {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                return get();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>        @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public Object getObject(final int i) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                return get(i);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>        @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public Object getObject(final int i, final int j) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return get(i, j);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>        @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>        public Object getObject(final int... pos) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                return getComplex(pos);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>        /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         * @return item in first position<a name="line.358"></a>
+<span class="sourceLineNo">359</span>         * @since 2.0<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         */<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public float getReal() { // PRIM_TYPE<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return (float) getFirstValue(); // PRIM_TYPE<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>        /**<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         * @param i<a name="line.366"></a>
+<span class="sourceLineNo">367</span>         * @return item in given position<a name="line.367"></a>
+<span class="sourceLineNo">368</span>         */<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        public float getReal(final int i) { // PRIM_TYPE<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return (float) getFirstValue(i); // PRIM_TYPE<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @param i<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         * @param j<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * @return item in given position<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         */<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        public float getReal(final int i, final int j) { // PRIM_TYPE<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                return (float) getFirstValue(i, j); // PRIM_TYPE<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>        /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * @param pos<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * @return item in given position<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         */<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        public float getReal(final int... pos) { // PRIM_TYPE<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return (float) getFirstValue(pos); // PRIM_TYPE<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        /**<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * @return item in first position<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * @since 2.0<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         */<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        public float getImag() { // PRIM_TYPE<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                return data[getFirst1DIndex() + 1];<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        }<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>        /**<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         * @param i<a name="line.399"></a>
+<span class="sourceLineNo">400</span>         * @return item in given position<a name="line.400"></a>
+<span class="sourceLineNo">401</span>         */<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public float getImag(final int i) { // PRIM_TYPE<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return data[get1DIndex(i) + 1];<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        /**<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @param i<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         * @param j<a name="line.408"></a>
+<span class="sourceLineNo">409</span>         * @return item in given position<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        public float getImag(final int i, final int j) { // PRIM_TYPE<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return data[get1DIndex(i, j) + 1];<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>        /**<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * @param pos<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         * @return item in given position<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         */<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        public float getImag(final int... pos) { // PRIM_TYPE<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                return data[get1DIndex(pos) + 1];<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        }<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>        /**<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         * @return item in first position<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         * @since 2.0<a name="line.425"></a>
+<span class="sourceLineNo">426</span>         */<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public Complex getComplex() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        /**<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param i<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         * @return item in given position<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         */<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        public Complex getComplex(final int i) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return get(i);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>        /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @param i<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @param j<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         * @return item in given position<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         */<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        public Complex getComplex(final int i, final int j) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                return get(i, j);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>        /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         * @param pos<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @return item in given position<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public Complex getComplex(final int... pos) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return get(pos);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public void set(final Object obj, final int i) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                setItem(new float[] {(float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)}, i); // PRIM_TYPE<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public void set(final Object obj, final int i, final int j) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                setItem(new float[] {(float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)}, i, j); // PRIM_TYPE<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public void set(final Object obj, int... pos) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        pos = new int[shape.length];<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>                setItem(new float[] {(float) DTypeUtils.toReal(obj), (float) DTypeUtils.toImag(obj)}, pos); // PRIM_TYPE<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>        /**<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         * Set real and imaginary values at given position<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         * @param dr<a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * @param di<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         * @param i<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        public void set(final float dr, final float di, final int i) { // PRIM_TYPE<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                setItem(new float[] {dr, di}, i); // PRIM_TYPE<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        }<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>        /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * Set real and imaginary values at given position<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         * @param dr<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param di<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @param i<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * @param j<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         */<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public void set(final float dr, final float di, final int i, final int j) { // PRIM_TYPE<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                setItem(new float[] {dr, di}, i, j); // PRIM_TYPE<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        /**<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * Set real and imaginary values at given position<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         * @param dr<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * @param di<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * @param pos<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @since 2.0<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         */<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        public void set(final float dr, final float di, final int... pos) { // PRIM_TYPE<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                setItem(new float[] {dr, di}, pos); // PRIM_TYPE<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>        /**<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         * @since 2.0<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         */<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        @Override<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        public FloatDataset getRealPart() { // CLASS_TYPE<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return getElements(0);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        /**<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         * @since 2.0<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         */<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        @Override<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        public FloatDataset getRealView() { // CLASS_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                return getElementsView(0);<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>        /**<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         * @return imaginary part of dataset as new dataset<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         * @since 2.0<a name="line.525"></a>
+<span class="sourceLineNo">526</span>         */<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public FloatDataset getImaginaryPart() { // CLASS_TYPE<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return getElements(1);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        /**<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         * @return view of imaginary values<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         */<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        public FloatDataset getImaginaryView() { // CLASS_TYPE<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                return getElementsView(1);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>        }<a name="line.536"></a>
+<span class="sourceLineNo">537</span><a name="line.537"></a>
+<span class="sourceLineNo">538</span>        @Override<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        public Number max(boolean... switches) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        }<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>        @Override<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public Number min(boolean... switches) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        }<a name="line.546"></a>
+<span class="sourceLineNo">547</span><a name="line.547"></a>
+<span class="sourceLineNo">548</span>        @Override<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        public Object sum(boolean... switches) { // FIXME<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                double[] sum = (double[]) super.sum(switches);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return new Complex(sum[0], sum[1]);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        }<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span>        @Override<a name="line.554"></a>
+<span class="sourceLineNo">555</span>        public Object mean(boolean... switches) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                double[] mean = (double[]) super.mean(switches);<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                return new Complex(mean[0], mean[1]);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>        @Override<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        public int[] maxPos(boolean... switches) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>        @Override<a name="line.565"></a>
+<span class="sourceLineNo">566</span>        public int[] minPos(boolean... switches) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                throw new UnsupportedOperationException("Cannot compare complex numbers");<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>        @Override<a name="line.570"></a>
+<span class="sourceLineNo">571</span>        public ComplexFloatDataset getSlice(final SliceIterator siter) {<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                ComplexFloatDataset result = new ComplexFloatDataset(siter.getShape());<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                IndexIterator riter = result.getIterator();<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        rdata[riter.index] = data[siter.index];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                        rdata[riter.index+1] = data[siter.index+1];<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                return result;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        }<a name="line.583"></a>
+<span class="sourceLineNo">584</span><a name="line.584"></a>
+<span class="sourceLineNo">585</span>        @Override<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        ComplexFloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                setDirty();<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>                if (d instanceof ComplexFloatDataset || d instanceof ComplexFloatDataset) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        while (it.hasNext()) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                data[it.aIndex + 1] = (float) d.getElementDoubleAbs(it.bIndex + 1); // GET_ELEMENT_WITH_CAST<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                } else {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        while (it.hasNext()) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                data[it.aIndex + 1] = 0;<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                }<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                return this;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span><a name="line.603"></a>
+<span class="sourceLineNo">604</span>        @Override<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        public ComplexFloatDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                setDirty();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                if (o instanceof ComplexFloatDataset) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        ComplexFloatDataset zds = (ComplexFloatDataset) o;<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                throw new IllegalArgumentException(String.format(<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                                                Arrays.toString(siter.getShape())));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        }<a name="line.614"></a>
+<span class="sourceLineNo">615</span><a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        IndexIterator oiter = zds.getIterator();<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        float[] odata = zds.data;<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                data[siter.index] = odata[oiter.index];<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                data[siter.index+1] = odata[oiter.index+1];<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                        }<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                } else if (o instanceof ComplexDoubleDataset) { // IGNORE_CLASS<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        ComplexDoubleDataset zds = (ComplexDoubleDataset) o; // IGNORE_CLASS<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), zds.shape)) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                throw new IllegalArgumentException(String.format(<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(zds.shape),<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                                Arrays.toString(siter.getShape())));<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        IndexIterator oiter = zds.getIterator();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        double[] odata = zds.data;<a name="line.633"></a>
+<span class="sourceLineNo">634</span><a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                data[siter.index] = (float) odata[oiter.index]; // PRIM_TYPE // ADD_CAST<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                data[siter.index+1] = (float) odata[oiter.index+1]; // PRIM_TYPE // ADD_CAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } else if (o instanceof IDataset) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        super.setSlice(o, siter);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                } else {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        try {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                float vr = (float) DTypeUtils.toReal(o); // PRIM_TYPE // ADD_CAST<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                float vi = (float) DTypeUtils.toImag(o); // PRIM_TYPE // ADD_CAST<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                while (siter.hasNext()) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                        data[siter.index]     = vr;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                        data[siter.index + 1] = vi;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        } catch (IllegalArgumentException e) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        }<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                return this;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>        }<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>        @Override<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        public ComplexFloatDataset iadd(final Object b) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                setDirty();<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                if (bds.getSize() == 1) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        final IndexIterator it = getIterator();<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        final int bOffset = bds.getOffset();<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        if (useLong) { // note no complex longs<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                while (it.hasNext()) {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                        data[it.index] += lb;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        } else {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                        while (it.hasNext()) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                                data[it.index] += db;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                } else {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        while (it.hasNext()) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                                data[it.index]     += db;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                                data[it.index + 1] += vi;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        }<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                } else {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        it.setOutputDouble(!useLong);<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        if (useLong) { // note no complex longs<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                while (it.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        data[it.aIndex] += it.bLong;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                        } else {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                if (bds.isComplex()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        while (it.hasNext()) {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                data[it.aIndex]     += it.bDouble;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                data[it.aIndex + 1] += bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        while (it.hasNext()) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                                data[it.aIndex] += it.bDouble;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                }<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                return this;<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        }<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>        @Override<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        public ComplexFloatDataset isubtract(final Object b) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                setDirty();<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                if (bds.getSize() == 1) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        final IndexIterator it = getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        final int bOffset = bds.getOffset();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        if (useLong) { // note no complex longs<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                while (it.hasNext()) {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                        data[it.index] -= lb;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                }<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        } else {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                        while (it.hasNext()) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                                data[it.index] -= db;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                } else {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                        while (it.hasNext()) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                                data[it.index]     -= db;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                                data[it.index + 1] -= vi;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                        }<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        }<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                } else {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        it.setOutputDouble(!useLong);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        if (useLong) { // note no complex longs<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                while (it.hasNext()) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                        data[it.aIndex] -= it.bLong;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                if (bds.isComplex()) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        while (it.hasNext()) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                                data[it.aIndex]     -= it.bDouble;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                                data[it.aIndex + 1] -= bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                } else {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                        while (it.hasNext()) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                                data[it.aIndex] -= it.bDouble;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                }<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                        }<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                }<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                return this;<a name="line.754"></a>
+<span class="sourceLineNo">755</span>        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>        @Override<a name="line.757"></a>
+<span class="sourceLineNo">758</span>        public ComplexFloatDataset imultiply(final Object b) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                setDirty();<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                if (bds.getSize() == 1) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        final IndexIterator it = getIterator();<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        final int bOffset = bds.getOffset();<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        if (useLong) { // note no complex longs<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                while (it.hasNext()) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                        data[it.index]     *= r2;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                                        data[it.index + 1] *= r2;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                }<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        } else {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                        while (it.hasNext()) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                                                data[it.index]     *= r2;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                                data[it.index + 1] *= r2;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                } else {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                        while (it.hasNext()) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                                                double r1 = data[it.index];<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                                double i1 = data[it.index + 1];<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                                data[it.index]     = (float) (r1*r2 - i1*i2); // ADD_CAST<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                                data[it.index + 1] = (float) (r1*i2 + i1*r2); // ADD_CAST<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                }<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        it.setOutputDouble(!useLong);<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        if (useLong) { // note no complex longs<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                while (it.hasNext()) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        data[it.aIndex]     *= it.bDouble;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                        data[it.aIndex + 1] *= it.bDouble;<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                if (bds.isComplex()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        while (it.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                double r1 = it.aDouble;<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                                double r2 = it.bDouble;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                double i1 = data[it.aIndex + 1];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                                data[it.aIndex]     = (float) (r1*r2 - i1*i2); // ADD_CAST<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                data[it.aIndex + 1] = (float) (r1*i2 + i1*r2); // ADD_CAST<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                        }<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                } else {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                        while (it.hasNext()) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                                data[it.aIndex]     *= it.bDouble;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                                data[it.aIndex + 1] *= it.bDouble;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public ComplexFloatDataset idivide(final Object b) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                if (bds.getSize() == 1) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final IndexIterator it = getIterator();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        final int bOffset = bds.getOffset();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (useLong) { // note no complex longs<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                final long r2 = bds.getElementLongAbs(bOffset);<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                while (it.hasNext()) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                        data[it.index]     /= r2;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                        data[it.index + 1] /= r2;<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        } else {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                        while (it.hasNext()) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                                data[it.index]     /= r2;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                                data[it.index + 1] /= r2;<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                        }<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                } else {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        final double i2 = bds.getElementDoubleAbs(bOffset + 1);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                double q = r2/i2;<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                                double den = r2*q + i2;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                while (it.hasNext()) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                        double r1 = data[it.index];<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                        double i1 = data[it.index + 1];<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                        data[it.index]     = (float) ((r1*q + i1) / den); // ADD_CAST<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                                        data[it.index + 1] = (float) ((i1*q - r1) / den); // ADD_CAST<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                                }<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        } else {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                double q = i2/r2;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                                double den = i2*q + r2;<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                                if (den == 0) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                        while (it.hasNext()) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                                                data[it.index]     = Float.NaN; // CLASS_TYPE<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                                                data[it.index + 1] = Float.NaN; // CLASS_TYPE<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                                } else {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                        while (it.hasNext()) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                                double r1 = data[it.index];<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                                                double i1 = data[it.index + 1];<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                                                data[it.index]     = (float) ((i1 * q + r1) / den); // ADD_CAST<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                                                data[it.index + 1] = (float) ((i1 - r1 * q) / den); // ADD_CAST<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                                        }<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                }<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                } else {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        it.setOutputDouble(!useLong);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        if (useLong) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                while (it.hasNext()) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                        data[it.aIndex]     /= it.bLong;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        data[it.aIndex + 1] /= it.bLong;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        } else {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                if (bds.isComplex()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        while (it.hasNext()) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                                double r1 = it.aDouble;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                                double r2 = it.bDouble;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                                double i1 = data[it.aIndex + 1];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                                double i2 = bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                                if (Math.abs(r2) &lt; Math.abs(i2)) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                                        double q = r2/i2;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                                        double den = r2*q + i2;<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                                        data[it.aIndex]     = (float) ((r1*q + i1) / den); // ADD_CAST<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                                        data[it.aIndex + 1] = (float) ((i1*q - r1) / den); // ADD_CAST<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                                } else {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                                        double q = i2/r2;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                                        double den = i2*q + r2;<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                                        if (den == 0) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                                                data[it.aIndex]     = Float.NaN; // CLASS_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                                data[it.aIndex + 1] = Float.NaN; // CLASS_TYPE<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                                        } else {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                                data[it.aIndex]     = (float) ((i1 * q + r1) / den); // ADD_CAST<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                                data[it.aIndex + 1] = (float) ((i1 - r1 * q) / den); // ADD_CAST<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        }<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                } else {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                        while (it.hasNext()) {<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                                data[it.aIndex]     /= it.bDouble;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                                data[it.aIndex + 1] /= it.bDouble;<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                        }<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                return this;<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>        @Override<a name="line.911"></a>
+<span class="sourceLineNo">912</span>        public ComplexFloatDataset iremainder(final Object b) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        }<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>        @Override<a name="line.916"></a>
+<span class="sourceLineNo">917</span>        public ComplexFloatDataset ipower(final Object b) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                setDirty();<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (bds.getSize() == 1) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        final IndexIterator it = getIterator();<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        final int bOffset = bds.getOffset();<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        final double r2 = bds.getElementDoubleAbs(bOffset);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        if (!bds.isComplex() || bds.getElementDoubleAbs(bOffset + 1) == 0) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(r2);<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        data[it.index]     = (float) zd.getReal(); // ADD_CAST<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                        data[it.index + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        } else {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                final Complex zv = new Complex(r2, bds.getElementDoubleAbs(bOffset + 1));<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                while (it.hasNext()) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                        final Complex zd = new Complex(data[it.index], data[it.index + 1]).pow(zv);<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        data[it.index]     = (float) zd.getReal(); // ADD_CAST<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                        data[it.index + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        }<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                } else {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        it.setOutputDouble(true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (bds.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                while (it.hasNext()) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(zv);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        data[it.aIndex]     = (float) zd.getReal(); // ADD_CAST<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                        data[it.aIndex + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                }<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                while (it.hasNext()) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                        final Complex zd = new Complex(it.aDouble, data[it.aIndex + 1]).pow(it.bDouble);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                        data[it.aIndex]     = (float) zd.getReal(); // ADD_CAST<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        data[it.aIndex + 1] = (float) zd.getImaginary(); // ADD_CAST<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                }<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                        }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                }<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                return this;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public double residual(final Object b, Dataset w, boolean ignoreNaNs) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                it.setOutputDouble(true);<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                double sum = 0;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                double comp = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                final int bis = bds.getElementsPerItem();<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>                if (bis == 1) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        if (w == null) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                while (it.hasNext()) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        double diffi = data[it.aIndex + 1];<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                                continue;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                        }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        double err = diffr * diffr - comp;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                        double temp = sum + err;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        comp = (temp - sum) - err;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                        sum = temp;<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                        err = diffi * diffi - comp;<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        temp = sum + err;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                        comp = (temp - sum) - err;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        sum = temp;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                }<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        } else {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                IndexIterator itw = w.getIterator();<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                        double diffi = data[it.aIndex + 1];<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                continue;<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                        }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        double err = diffr * diffr * dw - comp;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        double temp = sum + err;<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        comp = (temp - sum) - err;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        sum = temp;<a name="line.998"></a>
+<span class="sourceLineNo">999</span><a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        err = diffi * diffi * dw - comp;<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        temp = sum + err;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        comp = (temp - sum) - err;<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        sum = temp;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                } else {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        if (w == null) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                                continue;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                        double err = diffr * diffr - comp;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        double temp = sum + err;<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                        comp = (temp - sum) - err;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        sum = temp;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                        err = diffi * diffi - comp;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        temp = sum + err;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        comp = (temp - sum) - err;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        sum = temp;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        } else {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                IndexIterator itw = w.getIterator();<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                        double diffr = it.aDouble - it.bDouble;<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                        double diffi = data[it.aIndex] - bds.getElementDoubleAbs(it.bIndex + 1);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(diffr) || Double.isNaN(diffi))) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                                continue;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                        }<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                        double err = diffr * diffr * dw - comp;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                        double temp = sum + err;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        comp = (temp - sum) - err;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        sum = temp;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span><a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                        err = diffi * diffi * dw - comp;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        temp = sum + err;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        comp = (temp - sum) - err;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        sum = temp;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                return sum;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>}<a name="line.1047"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundByteDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundByteDataset.html
new file mode 100644
index 0000000..af39702
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundByteDataset.html
@@ -0,0 +1,2145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for byte values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundByteDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected byte[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (byte[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected byte[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                byte[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new byte[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT8; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundByteDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundByteDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundByteDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundByteDataset(final CompoundByteDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundByteDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (byte) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundByteDataset(final int itemSize, final byte[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundByteDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (byte) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (byte) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundByteDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final byte v = (byte) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (byte) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (!super.equals(obj)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return true;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                CompoundByteDataset other = (CompoundByteDataset) obj;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                IndexIterator iter = getIterator();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                IndexIterator oiter = other.getIterator();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return false;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return true;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int hashCode() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return super.hashCode();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public CompoundByteDataset clone() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return new CompoundByteDataset(this);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * elemental dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param obj<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset with contents given by input<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        static CompoundByteDataset createFromObject(final Object obj) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                ByteDataset result = ByteDataset.createFromObject(obj); // CLASS_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return (CompoundByteDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * sequences or arrays are padded with zeros.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         *<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param itemSize<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param obj<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return dataset with contents given by input<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static CompoundByteDataset createFromObject(final int itemSize, final Object obj) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                ByteDataset result = ByteDataset.createFromObject(obj); // CLASS_TYPE<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return new CompoundByteDataset(itemSize, result.getData(), null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param stop<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundByteDataset createRange(final int itemSize, final double stop) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return createRange(itemSize, 0., stop, 1.);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param start<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param stop<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param step<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        static CompoundByteDataset createRange(final int itemSize, final double start, final double stop,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final double step) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int size = calcSteps(start, stop, step);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                CompoundByteDataset result = new CompoundByteDataset(itemSize, new int[] { size });<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (int i = 0; i &lt; size; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        result.data[i * result.isize] = (byte) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                return result;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param shape<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return a dataset filled with ones<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        static CompoundByteDataset ones(final int itemSize, final int... shape) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return new CompoundByteDataset(itemSize, shape).fill(1);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Create a compound dataset using last dimension of given dataset<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param shareData<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @return compound dataset<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public static CompoundByteDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (a.getElementsPerItem() != 1) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        logger.error("Need a single-element dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                if (a.getDType() != Dataset.INT8) { // DATA_TYPE<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        logger.error("Dataset type must be byte"); // PRIM_TYPE<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        throw new IllegalArgumentException("Dataset type must be byte"); // PRIM_TYPE<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                final int[] shape = a.getShapeRef();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                if (shape == null) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new CompoundByteDataset(0);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>                final int rank = shape.length - 1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                CompoundByteDataset result = new CompoundByteDataset(is);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                result.setName(a.getName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                result.setData();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return result;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public ByteDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                ByteDataset result = new ByteDataset(); // CLASS_TYPE<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int is = getElementsPerItem();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                if (is != 1)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        nshape[rank-1] = is;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.shape = nshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.odata = shareData ? data : data.clone();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                result.setName(name);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                result.setData();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return result;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public CompoundByteDataset fill(final Object obj) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                setDirty();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                byte[] vr = DTypeUtils.toByteArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                IndexIterator iter = getIterator();<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (iter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * This is a typed version of {@link #getBuffer()}<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return data buffer as linear array<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public byte[] getData() { // PRIM_TYPE<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return data;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        protected int getBufferLength() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (data == null)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        return 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data.length;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public CompoundByteDataset getView(boolean deepCopyMetadata) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                CompoundByteDataset view = new CompoundByteDataset(isize);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                view.setData();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return view;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>        /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param index<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            absolute index<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return values<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public byte[] getAbs(final int index) { // PRIM_TYPE<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                byte[] result = new byte[isize]; // PRIM_TYPE<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        result[i] = data[index + i];<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return result;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param index<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         *            absolute index<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param values<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public void getAbs(final int index, final byte[] values) { // PRIM_TYPE<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        values[i] = data[index + i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>        @Override<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[index] != 0;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public double getElementDoubleAbs(final int index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return data[index];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public long getElementLongAbs(final int index) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return data[index]; // OMIT_TOLONG_INT<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                setDirty();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                byte[] dsrc = (byte[]) src; // PRIM_TYPE<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        data[dindex + i] = dsrc[sindex + i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param index<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            absolute index<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param val<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         *            new values<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public void setAbs(final int index, final byte[] val) { // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                setDirty();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        data[index + i] = val[i];<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Set element value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param index<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            absolute index<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param val<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *            new value<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setAbs(final int index, final byte val) { // PRIM_TYPE<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                setDirty();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                data[index] = val;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Object getObject() {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return getByteArray(); // PRIM_TYPE<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Object getObject(final int i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return getByteArray(i); // PRIM_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public Object getObject(final int i, final int j) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return getByteArray(i, j); // PRIM_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Object getObject(final int... pos) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getByteArray(pos); // PRIM_TYPE<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public byte[] getByteArray() {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                byte[] result = new byte[isize];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                int index = getFirst1DIndex();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return result;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte[] getByteArray(final int i) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                byte[] result = new byte[isize];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                int index = get1DIndex(i);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return result;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                byte[] result = new byte[isize];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                int index = get1DIndex(i, j);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return result;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public byte[] getByteArray(final int... pos) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                byte[] result = new byte[isize];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                int index = get1DIndex(pos);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return result;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public short[] getShortArray() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                short[] result = new short[isize];<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int index = getFirst1DIndex();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return result;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public short[] getShortArray(final int i) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                short[] result = new short[isize];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                int index = get1DIndex(i);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return result;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>        @Override<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public short[] getShortArray(final int i, final int j) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                short[] result = new short[isize];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                int index = get1DIndex(i, j);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                return result;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public short[] getShortArray(final int... pos) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                short[] result = new short[isize];<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int index = get1DIndex(pos);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return result;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public int[] getIntArray() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int[] result = new int[isize];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                int index = getFirst1DIndex();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                return result;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public int[] getIntArray(final int i) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] result = new int[isize];<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int index = get1DIndex(i);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                return result;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>        @Override<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        public int[] getIntArray(final int i, final int j) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] result = new int[isize];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int index = get1DIndex(i, j);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return result;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>        @Override<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        public int[] getIntArray(final int... pos) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                int[] result = new int[isize];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int index = get1DIndex(pos);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return result;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        public long[] getLongArray() {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                long[] result = new long[isize];<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int index = getFirst1DIndex();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return result;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public long[] getLongArray(final int i) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                long[] result = new long[isize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int index = get1DIndex(i);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return result;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Override<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public long[] getLongArray(final int i, final int j) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                long[] result = new long[isize];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                int index = get1DIndex(i, j);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return result;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public long[] getLongArray(final int... pos) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                long[] result = new long[isize];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                int index = get1DIndex(pos);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return result;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public float[] getFloatArray() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                float[] result = new float[isize];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int index = getFirst1DIndex();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return result;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public float[] getFloatArray(final int i) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                float[] result = new float[isize];<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                int index = get1DIndex(i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return result;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                float[] result = new float[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int index = get1DIndex(i, j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return result;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public float[] getFloatArray(final int... pos) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                float[] result = new float[isize];<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                int index = get1DIndex(pos);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return result;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public double[] getDoubleArray() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                double[] result = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                int index = getFirst1DIndex();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                return result;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>        @Override<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        public double[] getDoubleArray(final int i) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                double[] result = new double[isize];<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                int index = get1DIndex(i);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return result;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                double[] result = new double[isize];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                int index = get1DIndex(i, j);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return result;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public double[] getDoubleArray(final int... pos) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double[] result = new double[isize];<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                int index = get1DIndex(pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return result;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        @Override<a name="line.772"></a>
+<span class="sourceLineNo">773</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        darray[i] = data[index + i];<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>        @Override<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        public String getString() {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getStringAbs(getFirst1DIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        @Override<a name="line.784"></a>
+<span class="sourceLineNo">785</span>        public String getString(final int i) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                return getStringAbs(get1DIndex(i));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>        @Override<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public String getString(final int i, final int j) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return getStringAbs(get1DIndex(i, j));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public String getString(final int... pos) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return getStringAbs(get1DIndex(pos));<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @Override<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        protected double getFirstValue() {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                return data[getFirst1DIndex()];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>        @Override<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        protected double getFirstValue(int i) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return data[get1DIndex(i)];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        protected double getFirstValue(int i, int j) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return data[get1DIndex(i, j)];<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Override<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        protected double getFirstValue(final int... pos) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                return data[get1DIndex(pos)];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Override<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public Object getObjectAbs(final int index) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                byte[] result = new byte[isize]; // PRIM_TYPE<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result[i] = data[index + i];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return result;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getStringAbs(final int index) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                StringBuilder s = new StringBuilder();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                s.append('(');<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        stringFormat.format(data[index]));<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        s.append(' ');<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                stringFormat.format(data[index + i]));<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                s.append(')');<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return s.toString();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                byte[] oa = DTypeUtils.toByteArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setAbs(index, oa);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void set(final Object obj) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setItem(DTypeUtils.toByteArray(obj, isize)); // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        @Override<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        public void set(final Object obj, final int i) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                setItem(DTypeUtils.toByteArray(obj, isize), i); // CLASS_TYPE<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj, final int i, final int j) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                setItem(DTypeUtils.toByteArray(obj, isize), i, j); // CLASS_TYPE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        @Override<a name="line.864"></a>
+<span class="sourceLineNo">865</span>        public void set(final Object obj, int... pos) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        pos = new int[shape.length];<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                setItem(DTypeUtils.toByteArray(obj, isize), pos); // CLASS_TYPE<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Set values at first position. The dataset must not be null<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         *<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param d<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public void setItem(final byte[] d) { // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (d.length &gt; isize) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(getFirst1DIndex(), d);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Set values at given position. The dataset must be 1D<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         *<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param d<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param i<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void setItem(final byte[] d, final int i) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (d.length &gt; isize) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                setAbs(get1DIndex(i), d);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * Set values at given position. The dataset must be 1D<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         *<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param d<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param i<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param j<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         */<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public void setItem(final byte[] d, final int i, final int j) { // PRIM_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (d.length &gt; isize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                setAbs(get1DIndex(i, j), d);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        /**<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * Set values at given position<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         *<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param d<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param pos<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public void setItem(final byte[] d, final int... pos) { // PRIM_TYPE<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (d.length &gt; isize) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setAbs(get1DIndex(pos), d);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                for (int i = 0; i &lt; isize; i++)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        data[index + i] = (byte) d[i]; // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public void resize(int... newShape) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setDirty();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                IndexIterator iter = getIterator();<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                byte[] ndata; // PRIM_TYPE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                try {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        ndata = createArray(nsize);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                } catch (Throwable t) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        throw new IllegalArgumentException(t);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                int i = 0;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                ndata[i++] = data[iter.index + j];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                odata = data = ndata;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                size = nsize;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                shape = newShape;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                stride = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                offset = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                base = null;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public CompoundByteDataset getSlice(final SliceIterator siter) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                CompoundByteDataset result = new CompoundByteDataset(isize, siter.getShape());<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                byte[] rdata = result.data; // PRIM_TYPE<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                IndexIterator riter = result.getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return result;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public ByteDataset getElementsView(int element) { // CLASS_TYPE<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (element &lt; 0)<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        element += isize;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                ByteDataset view = new ByteDataset(shape); // CLASS_TYPE<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                copyToView(this, view, true, true);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                view.setData();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (view.stride == null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        int[] offset = new int[1];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        view.stride = createStrides(this, offset);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        view.offset = offset[0] + element;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        view.base = base == null ? this : base;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset += element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return view;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        }<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public ByteDataset getElements(int element) { // CLASS_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final ByteDataset elements = new ByteDataset(shape); // CLASS_TYPE<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                copyElements(elements, element);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return elements;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public void copyElements(Dataset destination, int element) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                if (element &lt; 0)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        element += isize;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                final IndexIterator it = getIterator(element);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                final byte[] elements = ((ByteDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                destination.setDirty();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int n = 0;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                while (it.hasNext()) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        elements[n] = data[it.index];<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        n++;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public void setElements(Dataset source, int element) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                setDirty();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (element &lt; 0)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        element += isize;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                final IndexIterator it = getIterator(element);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                final byte[] elements = ((ByteDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                int n = 0;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        data[it.index] = elements[n];<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        n++;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        @Override<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                IndexIterator riter = result.getIterator();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                result.setDirty();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                byte[] rdata = ((CompoundByteDataset) result).data; // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                rdata[riter.index + i] = data[iter.index + i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public CompoundByteDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (o instanceof Dataset) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        Dataset ds = (Dataset) o;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (length != ds.getSize()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                throw new IllegalArgumentException(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        IndexIterator iter = ds.getIterator();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                data[biter.index + i] = (byte) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        data[biter.index] = (byte) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                data[biter.index + i] = 0;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                } else {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        try {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                while (biter.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                                data[biter.index + i] = vr[i];<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        } catch (IllegalArgumentException e) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return this;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        @Override<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public CompoundByteDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                setDirty();<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (o instanceof Dataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        Dataset ds = (Dataset) o;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException(<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span><a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                double[] temp = new double[isize];<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                data[iter.index + i] = (byte) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        data[iter.index] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                data[iter.index + i] = 0;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                } else {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        try {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        setAbs(iter.index, vr);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        } catch (IllegalArgumentException e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                return this;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        @Override<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public CompoundByteDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                setDirty();<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                final int[] pos = iter.getPos();<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                if (o instanceof Dataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        Dataset ds = (Dataset) o;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                throw new IllegalArgumentException(<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                double[] temp = new double[isize];<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        } else {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        int n = get1DIndex(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        data[n] = (byte) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[n + i] = 0;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        try {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (iter.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        } catch (IllegalArgumentException e) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                return this;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        @Override<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        CompoundByteDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                setDirty();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                final int is = view.getElementsPerItem();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                if (is &gt; 1) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        final byte bv = (byte) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        data[it.aIndex] = bv;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex + j] = bv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex + j] = (byte) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                data[it.aIndex] = (byte) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                }<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                return this;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        @Override<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        public CompoundByteDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                setDirty();<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                if (o instanceof IDataset) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        final IDataset ds = (IDataset) o;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final int[] oshape = ds.getShape();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                throw new IllegalArgumentException(String.format(<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                                Arrays.toString(siter.getShape())));<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (ds instanceof Dataset) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final Dataset ads = (Dataset) ds;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                        data[siter.index + i] = (byte) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                                data[siter.index] = (byte) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                        data[siter.index + i] = 0;<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                final int[] pos = oiter.getPos();<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                data[siter.index] = ds.getByte(pos); // PRIM_TYPE<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                        data[siter.index + i] = 0;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                final byte[] val = DTypeUtils.toByteArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        data[siter.index + i] = val[i];<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                        try {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                final byte[] vr = DTypeUtils.toByteArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                while (siter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                data[siter.index + i] = vr[i];<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } catch (IllegalArgumentException e) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                return this;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                byte[] ddata = (byte[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        throw new IllegalArgumentException(String.format(<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        dest.getElementsPerItem(), isize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                }<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span><a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                dest.setDirty();<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        @Override<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                setDirty();<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                byte[] sdata = (byte[]) src; // PRIM_TYPE<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                data[siter.index + j] = sdata[isize * i + j];<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span><a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        @Override<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public boolean containsNans() {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                return false;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        @Override<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        public boolean containsInfs() {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                return false;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        }<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span><a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        @Override<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        public boolean containsInvalidNumbers() {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                return false;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>        @Override<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        public CompoundByteDataset iadd(final Object b) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                setDirty();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                int is = bds.getElementsPerItem();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                if (bds.getSize() == 1) {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        final IndexIterator it = getIterator();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                        final int bOffset = bds.getOffset();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (is == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                if (useLong) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        while (it.hasNext()) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                        data[it.index + i] += lb;<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                } else {<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        while (it.hasNext()) {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                                        data[it.index + i] += db;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                        } else if (is == isize) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                if (useLong) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        while (it.hasNext()) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                } else {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                        while (it.hasNext()) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                }<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                        }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                        } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        }<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                } else {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        it.setOutputDouble(!useLong);<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (is == 1) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (useLong) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                final long lb = it.bLong;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                                data[it.aIndex] += lb;<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.aIndex + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        while (it.hasNext()) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                final double db = it.bDouble;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                data[it.aIndex] += db;<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        data[it.aIndex + i] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                }<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        } else if (is == isize) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                if (useLong) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                        while (it.hasNext()) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                data[it.aIndex] += it.bLong;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                } else {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                        while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                        } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                return this;<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        @Override<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        public CompoundByteDataset isubtract(final Object b) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                setDirty();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                int is = bds.getElementsPerItem();<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                if (bds.getSize() == 1) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                        final IndexIterator it = getIterator();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                        final int bOffset = bds.getOffset();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        if (is == 1) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                if (useLong) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        while (it.hasNext()) {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                        data[it.index + i] -= lb;<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                        data[it.index + i] -= db;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                }<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                        } else if (is == isize) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                if (useLong) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        while (it.hasNext()) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                        }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                } else {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                        while (it.hasNext()) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                        }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                        } else {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                        }<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                } else {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        it.setOutputDouble(!useLong);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        if (is == 1) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                if (useLong) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                        while (it.hasNext()) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                final long lb = it.bLong;<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                data[it.aIndex] += lb;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                final double db = it.bDouble;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                data[it.aIndex] += db;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                        data[it.aIndex + i] -= db;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                        }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        } else if (is == isize) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                if (useLong) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                        while (it.hasNext()) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                data[it.aIndex] += it.bLong;<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                } else {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                        while (it.hasNext()) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                        } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                return this;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>        }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        @Override<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        public CompoundByteDataset imultiply(final Object b) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                setDirty();<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                int is = bds.getElementsPerItem();<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                if (bds.getSize() == 1) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        final IndexIterator it = getIterator();<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final int bOffset = bds.getOffset();<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        if (useLong) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                if (is == 1) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                        while (it.hasNext()) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                        data[it.index + i] *= lb;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                } else if (is == isize) {<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        while (it.hasNext()) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                }<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                        }<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                } else {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                        } else {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                if (is == 1) {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                        while (it.hasNext()) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                        data[it.index + i] *= db;<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                } else if (is == isize) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                        while (it.hasNext()) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                        }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                } else {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                } else {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        it.setOutputDouble(!useLong);<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                        if (useLong) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                if (is == 1) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                final double lb = it.bLong;<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        data[it.aIndex + i] *= lb;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (is == isize) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                } else {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                        } else {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                if (is == 1) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                        while (it.hasNext()) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                final double db = it.bDouble;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                        data[it.aIndex + i] *= db;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                                }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                } else if (is == isize) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                        while (it.hasNext()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                }<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                } else {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        }<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                return this;<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span><a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        @Override<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>        public CompoundByteDataset idivide(final Object b) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                setDirty();<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                int is = bds.getElementsPerItem();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                if (bds.getSize() == 1) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                        final IndexIterator it = getIterator();<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        final int bOffset = bds.getOffset();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                        if (useLong) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                if (is == 1) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        if (lb == 0) { // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                                fill(0); // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        } else { // INT_USE<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        while (it.hasNext()) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                        data[it.index + i] /= lb;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                        }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        } // INT_USE<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                } else if (is == isize) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        while (it.hasNext()) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                try {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                } catch (ArithmeticException e) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        data[it.index + i] = 0;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                }<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                                }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                        }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                } else {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                        } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                if (is == 1) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        if (db == 0) { // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                fill(0); // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        } else { // INT_USE<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        while (it.hasNext()) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                                        data[it.index + i] /= db;<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                                }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                        }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                        } // INT_USE<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                } else if (is == isize) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                try {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                } catch (ArithmeticException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        data[it.index + i] = 0;<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                }<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                }<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        }<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                        }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                } else {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        it.setOutputDouble(!useLong);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        if (useLong) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                if (is == 1) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                        while (it.hasNext()) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                final long lb = it.bLong;<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                if (lb == 0) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                        }// INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                } else { // INT_USE<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                } // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                } else if (is == isize) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        while (it.hasNext()) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                try {<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                } catch (ArithmeticException e) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        data[it.aIndex + i] = 0;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                }<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                }<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                if (is == 1) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        while (it.hasNext()) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                final double db = it.bDouble;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                if (db == 0) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                        }// INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                } else { // INT_USE<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                        data[it.aIndex + i] /= db;<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                } // INT_USE<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                } else if (is == isize) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        while (it.hasNext()) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                try {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                } catch (ArithmeticException e) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                        data[it.aIndex + i] = 0;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                                }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        }<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                } else {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                }<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                        }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                return this;<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>        }<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span><a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        @Override<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        public CompoundByteDataset ifloor() {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return this;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span><a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        @Override<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        public CompoundByteDataset iremainder(final Object b) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                setDirty();<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                int is = bds.getElementsPerItem();<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                if (bds.getSize() == 1) {<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        final IndexIterator it = getIterator();<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        final int bOffset = bds.getOffset();<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                        if (useLong) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                if (is == 1) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        if (lb == 0) { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                fill(0); // INT_USE<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        } else { // INT_USE<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                        while (it.hasNext()) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                        data[it.index + i] %= lb;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                        }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        } // INT_USE<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                } else if (is == isize) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        while (it.hasNext()) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                try {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                } catch (ArithmeticException e) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        data[it.index + i] = 0;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                                }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                } else {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                }<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        } else {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                if (is == 1) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        if (db == 0) { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                                fill(0); // INT_USE<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        } else { // INT_USE<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                        while (it.hasNext()) {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                        data[it.index + i] %= db;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                }<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        }<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        } // INT_USE<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                } else if (is == isize) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                        while (it.hasNext()) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                try {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                } catch (ArithmeticException e) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        data[it.index + i] = 0;<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        }<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                } else {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                }<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                } else {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        it.setOutputDouble(!useLong);<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                        if (useLong) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                if (is == 1) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        while (it.hasNext()) {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                final long lb = it.bLong;<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                if (lb == 0) { // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                } else { // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                } // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                } else if (is == isize) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                try {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                } catch (ArithmeticException e) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                        data[it.aIndex + i] = 0;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                                }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                } else {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                }<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                        } else {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                if (is == 1) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        while (it.hasNext()) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                final double db = it.bDouble;<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                if (db == 0) { // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                } else { // INT_USE<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                        data[it.aIndex + i] %= db;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                                } // INT_USE<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        }<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                } else if (is == isize) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                        while (it.hasNext()) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                try {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                } catch (ArithmeticException e) {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                        data[it.aIndex + i] = 0;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                                }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                } else {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                return this;<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        }<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span><a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>        public CompoundByteDataset ipower(final Object b) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                setDirty();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                final int is = bds.getElementsPerItem();<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                if (bds.getSize() == 1) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        final int bOffset = bds.getOffset();<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                        final IndexIterator it = getIterator();<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        if (bds.isComplex()) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                if (vi == 0) {<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                        while (it.hasNext()) {<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                        } else { // INT_USE<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                                        data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                                        } // INT_USE<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                        }<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                } else {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                        while (it.hasNext()) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                                        } else { // INT_USE<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                                        data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                                        } // INT_USE<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                        }<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        } else if (is == 1) {<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                while (it.hasNext()) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                                } else { // INT_USE<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                                data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                                } // INT_USE<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                        }<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                        } else if (is == isize) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                while (it.hasNext()) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                } else { // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                data[it.index + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                } // INT_USE<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                        }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                        it.setOutputDouble(true);<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                        if (bds.isComplex()) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                while (it.hasNext()) {<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                        } else { // INT_USE<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                        } // INT_USE<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                                } else { // INT_USE<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                data[it.aIndex + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                } // INT_USE<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                        }<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                        } else {<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                while (it.hasNext()) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                        } else { // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        data[it.aIndex] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                        } // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } else { // INT_USE<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                                data[it.aIndex + i] = (byte) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                                                } // INT_USE<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                                        }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                                }<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                return this;<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span><a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>        @Override<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                it.setOutputDouble(true);<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                double sum = 0;<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                double comp = 0;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                final int bis = bds.getElementsPerItem();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span><a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                if (bis == 1) {<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        if (w == null) {<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                while (it.hasNext()) {<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        final double db = it.bDouble;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        double diff = it.aDouble - db;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        double err = diff * diff - comp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        double temp = sum + err;<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        comp = (temp - sum) - err;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        sum = temp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                err = diff * diff - comp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                temp = sum + err;<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                comp = (temp - sum) - err;<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                sum = temp;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        }<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                }<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                        } else {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                IndexIterator itw = w.getIterator();<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        final double db = it.bDouble;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double diff = it.aDouble - db;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        double err = diff * diff * dw - comp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        double temp = sum + err;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                        comp = (temp - sum) - err;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                        sum = temp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                err = diff * diff * dw - comp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                                temp = sum + err;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                                comp = (temp - sum) - err;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                                sum = temp;<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                        }<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                }<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        }<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                } else {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                        if (w == null) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                while (it.hasNext()) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        double err = diff * diff - comp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double temp = sum + err;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        comp = (temp - sum) - err;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        sum = temp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                err = diff * diff - comp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                temp = sum + err;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                comp = (temp - sum) - err;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                sum = temp;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                }<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                        } else {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                IndexIterator itw = w.getIterator();<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        double err = diff * diff * dw - comp;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double temp = sum + err;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        comp = (temp - sum) - err;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        sum = temp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                err = diff * diff * dw - comp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                                temp = sum + err;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                comp = (temp - sum) - err;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                sum = temp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                        }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                }<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                        }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                return sum;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>}<a name="line.2073"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundDataset.html
new file mode 100644
index 0000000..c197410
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundDataset.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.IMonitor;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>public interface CompoundDataset extends Dataset {<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>        @Override<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        public CompoundDataset cast(boolean repeat, int dtype, int isize);<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        @Override<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public CompoundDataset cast(int dtype);<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        @Override<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public CompoundDataset clone();<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        @Override<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public CompoundDataset fill(Object obj);<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        @Override<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public CompoundDataset flatten();<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        @Override<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public CompoundDataset getBy1DIndex(IntegerDataset index);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        @Override<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public CompoundDataset getByBoolean(Dataset selection);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        @Override<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public CompoundDataset getByIndexes(Object... indexes);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>        @Override<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public CompoundDataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        @Override<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public CompoundDataset getSlice(IMonitor mon, Slice... slice);<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public CompoundDataset getSlice(IMonitor mon, SliceND slice);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public CompoundDataset getSlice(int[] start, int[] stop, int[] step);<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public CompoundDataset getSlice(Slice... slice);<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public CompoundDataset getSlice(SliceND slice);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        @Override<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public CompoundDataset getSliceView(int[] start, int[] stop, int[] step);<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>        @Override<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public CompoundDataset getSliceView(Slice... slice);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>        @Override<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public CompoundDataset getSliceView(SliceND slice);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>        @Override<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public CompoundDataset getTransposedView(int... axes);<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        @Override<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public CompoundDataset getView(boolean deepCopyMetadata);<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>        @Override<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        public CompoundDataset getBroadcastView(int... shape);<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        public CompoundDataset iadd(Object o);<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>        @Override<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public CompoundDataset idivide(Object o);<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public CompoundDataset ifloor();<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        @Override<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public CompoundDataset ifloorDivide(Object o);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>        @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public CompoundDataset imultiply(Object o);<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        @Override<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public CompoundDataset ipower(Object o);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>        @Override<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        public CompoundDataset iremainder(Object o);<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>        @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public CompoundDataset isubtract(Object o);<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        @Override<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        public CompoundDataset reshape(int... shape);<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public CompoundDataset setBy1DIndex(Object obj, Dataset index);<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public CompoundDataset setByBoolean(Object obj, Dataset selection);<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        @Override<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public CompoundDataset setByIndexes(Object obj, Object... indexes);<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        public CompoundDataset setSlice(Object obj, IndexIterator iterator);<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>        @Override<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public CompoundDataset setSlice(Object obj, int[] start, int[] stop, int[] step);<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        public CompoundDataset setSlice(Object object, Slice... slice);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public CompoundDataset sort(Integer axis);<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        public CompoundDataset squeezeEnds();<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>        @Override<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public CompoundDataset squeeze();<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        public CompoundDataset squeeze(boolean onlyFromEnd);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        @Override<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        public CompoundDataset swapAxes(int axis1, int axis2);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        public CompoundDataset synchronizedCopy();<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>        @Override<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public CompoundDataset transpose(int... axes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>        /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @since 2.0<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public CompoundDataset max(int axis, boolean... ignoreInvalids);<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>        /**<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         * @since 2.0<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        public CompoundDataset min(int axis, boolean... ignoreInvalids);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        /**<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * @since 2.0<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        @Override<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        public CompoundDataset peakToPeak(int axis, boolean... ignoreInvalids);<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>        /**<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @since 2.0<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        public CompoundDataset sum(int axis, boolean... ignoreInvalids);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        /**<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @since 2.0<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        @Override<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        public CompoundDataset product(int axis, boolean... ignoreInvalids);<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         * @since 2.0<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public CompoundDataset mean(int axis, boolean... ignoreInvalids);<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * @since 2.0<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         */<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public CompoundDataset rootMeanSquare(int axis, boolean... ignoreInvalids);<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>        @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public CompoundDataset stdDeviation(int axis);<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>        /**<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @since 2.0<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         */<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        public CompoundDataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>        @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        public CompoundDataset variance(int axis);<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>        /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         * @since 2.0<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         */<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        public CompoundDataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        /**<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * Get first item as a double array<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @param darray double array must be allocated and have sufficient length<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @since 2.0<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public void getDoubleArray(double[] darray);<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>        /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * Get an item as a double array<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param darray double array must be allocated and have sufficient length<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @param i<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public void getDoubleArray(double[] darray, final int i);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>        /**<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * Get an item as a double array<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * @param darray double array must be allocated and have sufficient length<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * @param i<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * @param j<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public void getDoubleArray(double[] darray, final int i, final int j);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>        /**<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * Get an item as a double array<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param darray double array must be allocated and have sufficient length<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param pos<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         */<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        public void getDoubleArray(double[] darray, final int... pos);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>        /**<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * Get an item as a double array<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @param index<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @param darray double array must be allocated and have sufficient length<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         */<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        public void getDoubleArrayAbs(int index, double[] darray);<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>        /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * Get chosen elements from each item as a dataset<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param element<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return dataset of chosen elements<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        public Dataset getElements(int element);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        /**<a name="line.248"></a>
+<span class="sourceLineNo">249</span>         * Get chosen elements from each item as a view on dataset<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * @param element<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @return view dataset of chosen elements<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        public Dataset getElementsView(int element);<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>        /**<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * Set values of chosen elements from each item according to source dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @param source<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * @param element<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        public void setElements(Dataset source, int element);<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * Copy chosen elements from each item to another dataset<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @param destination<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @param element<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        public void copyElements(Dataset destination, int element);<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>        /**<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * Get a non-compound dataset version<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @param shareData if true, share data otherwise copy it<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @return non-compound dataset<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         */<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public Dataset asNonCompoundDataset(final boolean shareData);<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        /**<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         * Calculate maximum values of elements over all items in dataset<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * @return double array of element-wise maxima<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         */<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        public double[] maxItem();<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>        /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * Calculate minimum values of elements over all items in dataset<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * @return double array of element-wise minima<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         */<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        public double[] minItem();<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>        /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @since 2.0<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public CompoundDataset getErrors();<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * @return item in first position<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @since 2.0<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         */<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public byte[] getByteArray();<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>        /**<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param i<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * @return item in given position<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        public byte[] getByteArray(final int i);<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>        /**<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @param i<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param j<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return item in given position<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        public byte[] getByteArray(final int i, final int j);<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @param pos<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * @return item in given position<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         */<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        public byte[] getByteArray(final int... pos);<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>        /**<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @return item in first position<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * @since 2.0<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         */<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        public short[] getShortArray();<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>        /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @param i<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @return item in given position<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        public short[] getShortArray(final int i);<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param i<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @param j<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         * @return item in given position<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         */<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        public short[] getShortArray(final int i, final int j);<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>        /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param pos<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * @return item in given position<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        public short[] getShortArray(final int... pos);<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        /**<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @return item in first position<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         * @since 2.0<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public int[] getIntArray();<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>        /**<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         * @param i<a name="line.351"></a>
+<span class="sourceLineNo">352</span>         * @return item in given position<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         */<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        public int[] getIntArray(final int i);<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>        /**<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         * @param i<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         * @param j<a name="line.358"></a>
+<span class="sourceLineNo">359</span>         * @return item in given position<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         */<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public int[] getIntArray(final int i, final int j);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>        /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * @param pos<a name="line.364"></a>
+<span class="sourceLineNo">365</span>         * @return item in given position<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         * @since 2.0<a name="line.366"></a>
+<span class="sourceLineNo">367</span>         */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        public int[] getIntArray(final int... pos);<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>        /**<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @return item in first position<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @since 2.0<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public long[] getLongArray();<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>        /**<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * @param i<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * @return item in given position<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         */<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        public long[] getLongArray(final int i);<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>        /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * @param i<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * @param j<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * @return item in given position<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public long[] getLongArray(final int i, final int j);<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>        /**<a name="line.389"></a>
+<span class="sourceLineNo">390</span>         * @param pos<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * @return item in given position<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         */<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        public long[] getLongArray(final int... pos);<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>        /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return item in first position<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * @since 2.0<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        public float[] getFloatArray();<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        /**<a name="line.401"></a>
+<span class="sourceLineNo">402</span>         * @param i<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * @return item in given position<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public float[] getFloatArray(final int i);<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>        /**<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         * @param i<a name="line.408"></a>
+<span class="sourceLineNo">409</span>         * @param j<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         * @return item in given position<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public float[] getFloatArray(final int i, final int j);<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @param pos<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * @return item in given position<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public float[] getFloatArray(final int... pos);<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        /**<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @return item in first position<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         * @since 2.0<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        public double[] getDoubleArray();<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        /**<a name="line.426"></a>
+<span class="sourceLineNo">427</span>         * @param i<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * @return item in given position<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         */<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        public double[] getDoubleArray(final int i);<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        /**<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         * @param i<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @param j<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @return item in given position<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         */<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double[] getDoubleArray(final int i, final int j);<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>        /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @param pos<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return item in given position<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public double[] getDoubleArray(final int... pos);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>}<a name="line.444"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html
new file mode 100644
index 0000000..5e03582
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundDoubleDataset.html
@@ -0,0 +1,2198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// GEN_COMMENT<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for double values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundDoubleDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected double[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (double[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected double[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                double[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new double[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYFLOAT64; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundDoubleDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundDoubleDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundDoubleDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        <a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundDoubleDataset(final CompoundDoubleDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundDoubleDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = dataset.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundDoubleDataset(final int itemSize, final double[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        <a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundDoubleDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = datasets[0].getElementDoubleAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = datasets[i].getElementDoubleAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundDoubleDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final double v = dataset.getElementDoubleAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = dataset.getElementDoubleAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (!super.equals(obj)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return true;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                CompoundDoubleDataset other = (CompoundDoubleDataset) obj;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                IndexIterator iter = getIterator();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                IndexIterator oiter = other.getIterator();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return false;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return true;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int hashCode() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return super.hashCode();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public CompoundDoubleDataset clone() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return new CompoundDoubleDataset(this);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * elemental dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * <a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param obj<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset with contents given by input<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        static CompoundDoubleDataset createFromObject(final Object obj) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                DoubleDataset result = DoubleDataset.createFromObject(obj); // CLASS_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return (CompoundDoubleDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * sequences or arrays are padded with zeros.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * <a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param itemSize<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param obj<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return dataset with contents given by input<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static CompoundDoubleDataset createFromObject(final int itemSize, final Object obj) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                DoubleDataset result = DoubleDataset.createFromObject(obj); // CLASS_TYPE<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return new CompoundDoubleDataset(itemSize, result.getData(), null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param stop<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundDoubleDataset createRange(final int itemSize, final double stop) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return createRange(itemSize, 0., stop, 1.);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param start<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param stop<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param step<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        static CompoundDoubleDataset createRange(final int itemSize, final double start, final double stop,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final double step) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int size = calcSteps(start, stop, step);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(itemSize, new int[] { size });<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (int i = 0; i &lt; size; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        result.data[i * result.isize] = (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                return result;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param shape<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return a dataset filled with ones<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        static CompoundDoubleDataset ones(final int itemSize, final int... shape) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return new CompoundDoubleDataset(itemSize, shape).fill(1);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Create a compound dataset using last dimension of given dataset<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param shareData<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @return compound dataset<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public static CompoundDoubleDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (a.getElementsPerItem() != 1) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        logger.error("Need a single-element dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                if (a.getDType() != Dataset.FLOAT64) { // DATA_TYPE<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        logger.error("Dataset type must be double"); // PRIM_TYPE <a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        throw new IllegalArgumentException("Dataset type must be double"); // PRIM_TYPE <a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                final int[] shape = a.getShapeRef();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                if (shape == null) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new CompoundDoubleDataset(0);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>                final int rank = shape.length - 1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(is);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                result.setName(a.getName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                result.setData();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return result;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public DoubleDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                DoubleDataset result = new DoubleDataset(); // CLASS_TYPE<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int is = getElementsPerItem();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                if (is != 1)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        nshape[rank-1] = is;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.shape = nshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.odata = shareData ? data : data.clone();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                result.setName(name);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                result.setData();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return result;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public CompoundDoubleDataset fill(final Object obj) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                setDirty();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                double[] vr = DTypeUtils.toDoubleArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                IndexIterator iter = getIterator();<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (iter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * This is a typed version of {@link #getBuffer()}<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return data buffer as linear array<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public double[] getData() { // PRIM_TYPE<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return data;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        protected int getBufferLength() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (data == null)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        return 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data.length;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public CompoundDoubleDataset getView(boolean deepCopyMetadata) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                CompoundDoubleDataset view = new CompoundDoubleDataset(isize);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                view.setData();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return view;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>        /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * <a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param index<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            absolute index<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return values<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public double[] getAbs(final int index) { // PRIM_TYPE<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                double[] result = new double[isize]; // PRIM_TYPE<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        result[i] = data[index + i];<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return result;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param index<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         *            absolute index<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param values<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public void getAbs(final int index, final double[] values) { // PRIM_TYPE<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        values[i] = data[index + i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>        @Override<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[index] != 0;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public double getElementDoubleAbs(final int index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return data[index];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public long getElementLongAbs(final int index) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return DTypeUtils.toLong(data[index]); // OMIT_TOLONG_INT<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                setDirty();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                double[] dsrc = (double[]) src; // PRIM_TYPE<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        data[dindex + i] = dsrc[sindex + i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param index<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            absolute index<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param val<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         *            new values<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public void setAbs(final int index, final double[] val) { // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                setDirty();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        data[index + i] = val[i];<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Set element value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param index<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            absolute index<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param val<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *            new value<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setAbs(final int index, final double val) { // PRIM_TYPE<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                setDirty();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                data[index] = val;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Object getObject() {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return getDoubleArray(); // PRIM_TYPE<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Object getObject(final int i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return getDoubleArray(i); // PRIM_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public Object getObject(final int i, final int j) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return getDoubleArray(i, j); // PRIM_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Object getObject(final int... pos) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getDoubleArray(pos); // PRIM_TYPE<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public byte[] getByteArray() {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                byte[] result = new byte[isize];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                int index = getFirst1DIndex();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return result;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte[] getByteArray(final int i) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                byte[] result = new byte[isize];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                int index = get1DIndex(i);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return result;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                byte[] result = new byte[isize];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                int index = get1DIndex(i, j);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return result;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public byte[] getByteArray(final int... pos) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                byte[] result = new byte[isize];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                int index = get1DIndex(pos);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return result;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public short[] getShortArray() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                short[] result = new short[isize];<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int index = getFirst1DIndex();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return result;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public short[] getShortArray(final int i) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                short[] result = new short[isize];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                int index = get1DIndex(i);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return result;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>        @Override<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public short[] getShortArray(final int i, final int j) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                short[] result = new short[isize];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                int index = get1DIndex(i, j);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                return result;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public short[] getShortArray(final int... pos) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                short[] result = new short[isize];<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int index = get1DIndex(pos);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return result;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public int[] getIntArray() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int[] result = new int[isize];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                int index = getFirst1DIndex();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                return result;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public int[] getIntArray(final int i) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] result = new int[isize];<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int index = get1DIndex(i);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                return result;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>        @Override<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        public int[] getIntArray(final int i, final int j) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] result = new int[isize];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int index = get1DIndex(i, j);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return result;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>        @Override<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        public int[] getIntArray(final int... pos) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                int[] result = new int[isize];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int index = get1DIndex(pos);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return result;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        public long[] getLongArray() {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                long[] result = new long[isize];<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int index = getFirst1DIndex();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return result;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public long[] getLongArray(final int i) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                long[] result = new long[isize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int index = get1DIndex(i);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return result;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Override<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public long[] getLongArray(final int i, final int j) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                long[] result = new long[isize];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                int index = get1DIndex(i, j);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return result;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public long[] getLongArray(final int... pos) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                long[] result = new long[isize];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                int index = get1DIndex(pos);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return result;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public float[] getFloatArray() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                float[] result = new float[isize];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int index = getFirst1DIndex();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return result;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public float[] getFloatArray(final int i) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                float[] result = new float[isize];<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                int index = get1DIndex(i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return result;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                float[] result = new float[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int index = get1DIndex(i, j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return result;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public float[] getFloatArray(final int... pos) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                float[] result = new float[isize];<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                int index = get1DIndex(pos);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        result[k] = (float) data[index + k]; // OMIT_REAL_CAST<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return result;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public double[] getDoubleArray() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                double[] result = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                int index = getFirst1DIndex();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                return result;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>        @Override<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        public double[] getDoubleArray(final int i) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                double[] result = new double[isize];<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                int index = get1DIndex(i);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return result;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                double[] result = new double[isize];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                int index = get1DIndex(i, j);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return result;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public double[] getDoubleArray(final int... pos) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double[] result = new double[isize];<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                int index = get1DIndex(pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return result;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        @Override<a name="line.772"></a>
+<span class="sourceLineNo">773</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        darray[i] = data[index + i];<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>        @Override<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        public String getString() {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getStringAbs(getFirst1DIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        @Override<a name="line.784"></a>
+<span class="sourceLineNo">785</span>        public String getString(final int i) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                return getStringAbs(get1DIndex(i));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>        @Override<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public String getString(final int i, final int j) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return getStringAbs(get1DIndex(i, j));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public String getString(final int... pos) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return getStringAbs(get1DIndex(pos));<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @Override<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        protected double getFirstValue() {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                return data[getFirst1DIndex()];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>        @Override<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        protected double getFirstValue(int i) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return data[get1DIndex(i)];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        protected double getFirstValue(int i, int j) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return data[get1DIndex(i, j)];<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Override<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        protected double getFirstValue(final int... pos) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                return data[get1DIndex(pos)];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Override<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public Object getObjectAbs(final int index) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                double[] result = new double[isize]; // PRIM_TYPE<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result[i] = data[index + i];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return result;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getStringAbs(final int index) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                StringBuilder s = new StringBuilder();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                s.append('(');<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                s.append(stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        stringFormat.format(data[index]));<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        s.append(' ');<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        s.append(stringFormat == null ? String.format("%.8g", data[index + i]) : // FORMAT_STRING<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                stringFormat.format(data[index + i]));<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                s.append(')');<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return s.toString();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                double[] oa = DTypeUtils.toDoubleArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setAbs(index, oa);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void set(final Object obj) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setItem(DTypeUtils.toDoubleArray(obj, isize)); // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        @Override<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        public void set(final Object obj, final int i) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), i); // CLASS_TYPE<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj, final int i, final int j) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), i, j); // CLASS_TYPE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        @Override<a name="line.864"></a>
+<span class="sourceLineNo">865</span>        public void set(final Object obj, int... pos) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        pos = new int[shape.length];<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                setItem(DTypeUtils.toDoubleArray(obj, isize), pos); // CLASS_TYPE<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Set values at first position. The dataset must not be null<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * <a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param d<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public void setItem(final double[] d) { // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (d.length &gt; isize) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(getFirst1DIndex(), d);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Set values at given position. The dataset must be 1D<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         * <a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param d<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param i<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void setItem(final double[] d, final int i) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (d.length &gt; isize) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                setAbs(get1DIndex(i), d);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * Set values at given position. The dataset must be 1D<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         * <a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param d<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param i<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param j<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         */<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public void setItem(final double[] d, final int i, final int j) { // PRIM_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (d.length &gt; isize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                setAbs(get1DIndex(i, j), d);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        /**<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * Set values at given position<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         * <a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param d<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param pos<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public void setItem(final double[] d, final int... pos) { // PRIM_TYPE<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (d.length &gt; isize) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setAbs(get1DIndex(pos), d);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                for (int i = 0; i &lt; isize; i++)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        data[index + i] = d[i]; // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public void resize(int... newShape) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setDirty();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                IndexIterator iter = getIterator();<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                double[] ndata; // PRIM_TYPE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                try {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        ndata = createArray(nsize);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                } catch (Throwable t) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        throw new IllegalArgumentException(t);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                int i = 0;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                ndata[i++] = data[iter.index + j];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                odata = data = ndata;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                size = nsize;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                shape = newShape;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                stride = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                offset = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                base = null;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public CompoundDoubleDataset getSlice(final SliceIterator siter) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                CompoundDoubleDataset result = new CompoundDoubleDataset(isize, siter.getShape());<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                IndexIterator riter = result.getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return result;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public DoubleDataset getElementsView(int element) { // CLASS_TYPE<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (element &lt; 0)<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        element += isize;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                DoubleDataset view = new DoubleDataset(shape); // CLASS_TYPE<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                copyToView(this, view, true, true);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                view.setData();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (view.stride == null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        int[] offset = new int[1];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        view.stride = createStrides(this, offset);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        view.offset = offset[0] + element;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        view.base = base == null ? this : base;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset += element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return view;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        }<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public DoubleDataset getElements(int element) { // CLASS_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final DoubleDataset elements = new DoubleDataset(shape); // CLASS_TYPE<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                copyElements(elements, element);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return elements;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public void copyElements(Dataset destination, int element) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                if (element &lt; 0)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        element += isize;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                final IndexIterator it = getIterator(element);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                final double[] elements = ((DoubleDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                destination.setDirty();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int n = 0;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                while (it.hasNext()) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        elements[n] = data[it.index];<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        n++;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public void setElements(Dataset source, int element) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                setDirty();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (element &lt; 0)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        element += isize;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                final IndexIterator it = getIterator(element);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                final double[] elements = ((DoubleDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                int n = 0;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        data[it.index] = elements[n];<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        n++;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        @Override<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                IndexIterator riter = result.getIterator();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                result.setDirty();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                double[] rdata = ((CompoundDoubleDataset) result).data; // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                rdata[riter.index + i] = data[iter.index + i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public CompoundDoubleDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (o instanceof Dataset) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        Dataset ds = (Dataset) o;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (length != ds.getSize()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                throw new IllegalArgumentException(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        IndexIterator iter = ds.getIterator();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                data[biter.index + i] = ds.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        data[biter.index] = ds.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                data[biter.index + i] = 0;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                } else {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        try {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                while (biter.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                                data[biter.index + i] = vr[i];<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        } catch (IllegalArgumentException e) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return this;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        @Override<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public CompoundDoubleDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                setDirty();<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (o instanceof Dataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        Dataset ds = (Dataset) o;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException(<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span><a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                double[] temp = new double[isize];<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                data[iter.index + i] = ds.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        data[iter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                data[iter.index + i] = 0;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                } else {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        try {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        setAbs(iter.index, vr);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        } catch (IllegalArgumentException e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                return this;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        @Override<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public CompoundDoubleDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                setDirty();<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                final int[] pos = iter.getPos();<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                if (o instanceof Dataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        Dataset ds = (Dataset) o;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                throw new IllegalArgumentException(<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                double[] temp = new double[isize];<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        } else {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        int n = get1DIndex(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        data[n] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[n + i] = 0;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        try {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (iter.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        } catch (IllegalArgumentException e) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                return this;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        @Override<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        CompoundDoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                setDirty();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                final int is = view.getElementsPerItem();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                if (is &gt; 1) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        final double bv = it.bDouble; // PRIM_TYPE // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        data[it.aIndex] = bv;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex + j] = bv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex + j] = d.getElementDoubleAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                }<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                return this;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        @Override<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        public CompoundDoubleDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                setDirty();<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                if (o instanceof IDataset) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        final IDataset ds = (IDataset) o;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final int[] oshape = ds.getShape();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                throw new IllegalArgumentException(String.format(<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                                Arrays.toString(siter.getShape())));<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (ds instanceof Dataset) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final Dataset ads = (Dataset) ds;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                        data[siter.index + i] = ads.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                                data[siter.index] = ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                        data[siter.index + i] = 0;<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                final int[] pos = oiter.getPos();<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                data[siter.index] = ds.getDouble(pos); // PRIM_TYPE<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                        data[siter.index + i] = 0;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                final double[] val = DTypeUtils.toDoubleArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        data[siter.index + i] = val[i];<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                        try {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                final double[] vr = DTypeUtils.toDoubleArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                while (siter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                data[siter.index + i] = vr[i];<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } catch (IllegalArgumentException e) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                return this;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                double[] ddata = (double[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        throw new IllegalArgumentException(String.format(<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        dest.getElementsPerItem(), isize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                }<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span><a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                dest.setDirty();<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        @Override<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                setDirty();<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                double[] sdata = (double[]) src; // PRIM_TYPE<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                data[siter.index + j] = sdata[isize * i + j];<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span><a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        @Override<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public boolean containsNans() {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                if (Double.isNaN(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                        return true; // REAL_ONLY<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                        } // REAL_ONLY<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                } // REAL_ONLY<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                return false;<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        }<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span><a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>        @Override<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        public boolean containsInfs() {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                if (Double.isInfinite(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                        return true; // REAL_ONLY<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        } // REAL_ONLY<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                } // REAL_ONLY<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                return false;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>        @Override<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        public boolean containsInvalidNumbers() {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                double x = data[iter.index + i]; // PRIM_TYPE // REAL_ONLY<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                if (Double.isNaN(x) || Double.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        return true; // REAL_ONLY<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                        } // REAL_ONLY<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                } // REAL_ONLY<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                return false;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>        }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public CompoundDoubleDataset iadd(final Object b) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                setDirty();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                int is = bds.getElementsPerItem();<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                if (bds.getSize() == 1) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                        final IndexIterator it = getIterator();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                        final int bOffset = bds.getOffset();<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                        if (is == 1) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                if (useLong) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                        while (it.hasNext()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        data[it.index + i] += lb;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                                        while (it.hasNext()) {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                                                        data[it.index + i] += db;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                                                }<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                                        }<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                        } else if (is == isize) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                if (useLong) {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        while (it.hasNext()) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        while (it.hasNext()) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                        } else {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        }<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                } else {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                        it.setOutputDouble(!useLong);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        if (is == 1) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                if (useLong) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                        while (it.hasNext()) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                final long lb = it.bLong;<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                data[it.aIndex] += lb;<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        data[it.aIndex + i] += lb;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                        }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        while (it.hasNext()) {<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                final double db = it.bDouble;<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                data[it.aIndex] += db;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                        data[it.aIndex + i] += db;<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                        }<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                        } else if (is == isize) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                if (useLong) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                        while (it.hasNext()) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                data[it.aIndex] += it.bLong;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                                }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        }<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                } else {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                        while (it.hasNext()) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                                }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                }<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                        } else {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                return this;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>        }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>        @Override<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>        public CompoundDoubleDataset isubtract(final Object b) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                setDirty();<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                int is = bds.getElementsPerItem();<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                if (bds.getSize() == 1) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                        final IndexIterator it = getIterator();<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                        final int bOffset = bds.getOffset();<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                        if (is == 1) {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                if (useLong) {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        while (it.hasNext()) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                        data[it.index + i] -= lb;<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                        }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                } else {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                        while (it.hasNext()) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                        data[it.index + i] -= db;<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                                }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                        }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                        } else if (is == isize) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                if (useLong) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        while (it.hasNext()) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                }<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                        }<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        } else {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        it.setOutputDouble(!useLong);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        if (is == 1) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                if (useLong) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                        while (it.hasNext()) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                final long lb = it.bLong;<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                data[it.aIndex] += lb;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        while (it.hasNext()) {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                final double db = it.bDouble;<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                data[it.aIndex] += db;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                        data[it.aIndex + i] -= db;<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                                }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                        } else if (is == isize) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                if (useLong) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        while (it.hasNext()) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                data[it.aIndex] += it.bLong;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                } else {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                        while (it.hasNext()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                }<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                }<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                        } else {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                        }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                }<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                return this;<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>        }<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span><a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>        @Override<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>        public CompoundDoubleDataset imultiply(final Object b) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                setDirty();<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                int is = bds.getElementsPerItem();<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                if (bds.getSize() == 1) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                        final IndexIterator it = getIterator();<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        final int bOffset = bds.getOffset();<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                        if (useLong) {<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                if (is == 1) {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        while (it.hasNext()) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                        data[it.index + i] *= lb;<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                }<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                        }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                } else if (is == isize) {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                        while (it.hasNext()) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                                }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                        }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                                } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                }<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                        } else {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                if (is == 1) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                        while (it.hasNext()) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                        data[it.index + i] *= db;<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                                }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                } else if (is == isize) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                        while (it.hasNext()) {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                } else {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                        }<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                } else {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                        it.setOutputDouble(!useLong);<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        if (useLong) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                if (is == 1) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        while (it.hasNext()) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                                final double lb = it.bLong;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                                        data[it.aIndex + i] *= lb;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                }<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                        }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                } else if (is == isize) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        while (it.hasNext()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        }<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                } else {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                        } else {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                if (is == 1) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                        while (it.hasNext()) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                                final double db = it.bDouble;<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                        data[it.aIndex + i] *= db;<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                        }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                } else if (is == isize) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                        while (it.hasNext()) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                } else {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                }<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                        }<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                return this;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>        }<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        @Override<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        public CompoundDoubleDataset idivide(final Object b) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                setDirty();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                int is = bds.getElementsPerItem();<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                if (bds.getSize() == 1) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                        final IndexIterator it = getIterator();<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        final int bOffset = bds.getOffset();<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        if (useLong) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                if (is == 1) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        // if (lb == 0) { // INT_USE<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        //      fill(0); // INT_USE<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        // } else { // INT_USE<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        while (it.hasNext()) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                        data[it.index + i] /= lb;<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                        // } // INT_USE<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                } else if (is == isize) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                        while (it.hasNext()) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                                        data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                        }<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                } else {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                        } else {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                if (is == 1) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                        // if (db == 0) { // INT_USE<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        //      fill(0); // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        // } else { // INT_USE<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                        data[it.index + i] /= db;<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                                }<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                        // } // INT_USE<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                } else if (is == isize) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                        while (it.hasNext()) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                } else {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                }<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                        }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                } else {<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        it.setOutputDouble(!useLong);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                        if (useLong) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                if (is == 1) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                        while (it.hasNext()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                final long lb = it.bLong;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                // if (lb == 0) { // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                //      }// INT_USE<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                // } else { // INT_USE<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                                // } // INT_USE<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                } else if (is == isize) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        while (it.hasNext()) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                        } else {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                if (is == 1) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        while (it.hasNext()) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                final double db = it.bDouble;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                // if (db == 0) { // INT_USE<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                //      }// INT_USE<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                // } else { // INT_USE<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                                        data[it.aIndex + i] /= db;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                                }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                                // } // INT_USE<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                        }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                } else if (is == isize) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        while (it.hasNext()) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                        data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                                }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                } else {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                return this;<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>        }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>        public CompoundDoubleDataset ifloor() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                setDirty(); // REAL_ONLY<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                final IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                data[it.index + i] = Math.floor(data[it.index] + i); // REAL_ONLY // ADD_CAST<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        } // REAL_ONLY<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                } // REAL_ONLY<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                return this;<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>        }<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span><a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        @Override<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>        public CompoundDoubleDataset iremainder(final Object b) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                setDirty();<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                int is = bds.getElementsPerItem();<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                if (bds.getSize() == 1) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        final IndexIterator it = getIterator();<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                        final int bOffset = bds.getOffset();<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                        if (useLong) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                if (is == 1) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        // if (lb == 0) { // INT_USE<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                        //      fill(0); // INT_USE<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        // } else { // INT_USE<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                        while (it.hasNext()) {<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                                        data[it.index + i] %= lb;<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                                }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                        }<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                        // } // INT_USE<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                } else if (is == isize) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                        while (it.hasNext()) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                                        data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                                }<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                } else {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                }<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                        } else {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                if (is == 1) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        // if (db == 0) { // INT_USE<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                        //      fill(0); // INT_USE<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        // } else { // INT_USE<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        while (it.hasNext()) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                                        data[it.index + i] %= db;<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                                }<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                        }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                        // } // INT_USE<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                } else if (is == isize) {<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                        data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                }<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                        }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                } else {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                        it.setOutputDouble(!useLong);<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                        if (useLong) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                if (is == 1) {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                        while (it.hasNext()) {<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                final long lb = it.bLong;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                // if (lb == 0) { // INT_USE<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                // } else { // INT_USE<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                // } // INT_USE<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                } else if (is == isize) {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                        while (it.hasNext()) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                                        data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        }<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                } else {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                        } else {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                if (is == 1) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                        while (it.hasNext()) {<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                final double db = it.bDouble;<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                // if (db == 0) { // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                // } else { // INT_USE<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                        data[it.aIndex + i] %= db;<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                                }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                                // } // INT_USE<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        }<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                } else if (is == isize) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                        while (it.hasNext()) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                        data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                }<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                        }<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                } else {<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                        }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                return this;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span><a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>        @Override<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        public CompoundDoubleDataset ipower(final Object b) {<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                setDirty();<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                final int is = bds.getElementsPerItem();<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                if (bds.getSize() == 1) {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        final int bOffset = bds.getOffset();<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        final IndexIterator it = getIterator();<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        if (bds.isComplex()) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                if (vi == 0) {<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                        while (it.hasNext()) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        // } else { // INT_USE<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                        // } // INT_USE<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                }<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        }<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                } else {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                        while (it.hasNext()) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                        // } else { // INT_USE<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                                        data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                                        // } // INT_USE<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                                }<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                        }<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                }<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        } else if (is == 1) {<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                while (it.hasNext()) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                                // } else { // INT_USE<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                                // } // INT_USE<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                        }<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                }<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        } else if (is == isize) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                while (it.hasNext()) {<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                // } else { // INT_USE<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                data[it.index + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                // } // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                        }<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                }<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                        }<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                } else {<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                        it.setOutputDouble(true);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                        if (bds.isComplex()) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                while (it.hasNext()) {<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        // } else { // INT_USE<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                        // } // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                                // } else { // INT_USE<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                data[it.aIndex + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                // } // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        }<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                }<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                        } else {<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                while (it.hasNext()) {<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        // } else { // INT_USE<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                        // } // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                // } else { // INT_USE<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                data[it.aIndex + i] = v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                // } // INT_USE<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                        }<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                }<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                        }<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                return this;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span><a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        @Override<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                it.setOutputDouble(true);<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                double sum = 0;<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                double comp = 0;<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                final int bis = bds.getElementsPerItem();<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span><a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                if (bis == 1) {<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                        if (w == null) {<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                while (it.hasNext()) {<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                        final double db = it.bDouble;<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                        double diff = it.aDouble - db;<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                                        continue; // REAL_ONLY<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                                skip = true; // REAL_ONLY<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                                break; // REAL_ONLY<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                        } // REAL_ONLY<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                } // REAL_ONLY<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                if (skip) { // REAL_ONLY<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                        continue; // REAL_ONLY<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                } // REAL_ONLY<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        } // REAL_ONLY<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                        double err = diff * diff - comp;<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        double temp = sum + err;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        comp = (temp - sum) - err;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                        sum = temp;<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                                err = diff * diff - comp;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                                temp = sum + err;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                                comp = (temp - sum) - err;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                                sum = temp;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                        }<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                }<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                        } else {<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                IndexIterator itw = w.getIterator();<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                        final double db = it.bDouble;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                        double diff = it.aDouble - db;<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                                        continue; // REAL_ONLY<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                                                skip = true; // REAL_ONLY<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                                break; // REAL_ONLY<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                                        } // REAL_ONLY<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                } // REAL_ONLY<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                if (skip) { // REAL_ONLY<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                        continue; // REAL_ONLY<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                } // REAL_ONLY<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        } // REAL_ONLY<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                        double err = diff * diff * dw - comp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                        double temp = sum + err;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        comp = (temp - sum) - err;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                        sum = temp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                                err = diff * diff * dw - comp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                                temp = sum + err;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                                comp = (temp - sum) - err;<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                                sum = temp;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                }<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                        }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                } else {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                        if (w == null) {<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                while (it.hasNext()) {<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                        continue; // REAL_ONLY<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                                                skip = true; // REAL_ONLY<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                                break; // REAL_ONLY<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                        } // REAL_ONLY<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                } // REAL_ONLY<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                                if (skip) { // REAL_ONLY<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                                        continue; // REAL_ONLY<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                                } // REAL_ONLY<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        } // REAL_ONLY<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        double err = diff * diff - comp;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        double temp = sum + err;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                        comp = (temp - sum) - err;<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                        sum = temp;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                err = diff * diff - comp;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                temp = sum + err;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                                comp = (temp - sum) - err;<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                                sum = temp;<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                        }<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                }<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                        } else {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                IndexIterator itw = w.getIterator();<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                                        continue; // REAL_ONLY<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                                skip = true; // REAL_ONLY<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                                break; // REAL_ONLY<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                        } // REAL_ONLY<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                } // REAL_ONLY<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                                if (skip) { // REAL_ONLY<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                                        continue; // REAL_ONLY<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                                } // REAL_ONLY<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                        } // REAL_ONLY<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                        double err = diff * diff * dw - comp;<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                                        double temp = sum + err;<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                                        comp = (temp - sum) - err;<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                                        sum = temp;<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                                err = diff * diff * dw - comp;<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                                temp = sum + err;<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                                comp = (temp - sum) - err;<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                                                sum = temp;<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                                        }<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                                }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>                        }<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                }<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                return sum;<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>        }<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>}<a name="line.2126"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html
new file mode 100644
index 0000000..5395398
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundFloatDataset.html
@@ -0,0 +1,2198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for float values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundFloatDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected float[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (float[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected float[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                float[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new float[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYFLOAT32; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundFloatDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundFloatDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundFloatDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundFloatDataset(final CompoundFloatDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundFloatDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (float) dataset.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundFloatDataset(final int itemSize, final float[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundFloatDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (float) datasets[0].getElementDoubleAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (float) datasets[i].getElementDoubleAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundFloatDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final float v = (float) dataset.getElementDoubleAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (float) dataset.getElementDoubleAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (!super.equals(obj)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return true;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                CompoundFloatDataset other = (CompoundFloatDataset) obj;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                IndexIterator iter = getIterator();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                IndexIterator oiter = other.getIterator();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return false;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return true;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int hashCode() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return super.hashCode();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public CompoundFloatDataset clone() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return new CompoundFloatDataset(this);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * elemental dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param obj<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset with contents given by input<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        static CompoundFloatDataset createFromObject(final Object obj) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                FloatDataset result = FloatDataset.createFromObject(obj); // CLASS_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return (CompoundFloatDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * sequences or arrays are padded with zeros.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         *<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param itemSize<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param obj<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return dataset with contents given by input<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static CompoundFloatDataset createFromObject(final int itemSize, final Object obj) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                FloatDataset result = FloatDataset.createFromObject(obj); // CLASS_TYPE<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return new CompoundFloatDataset(itemSize, result.getData(), null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param stop<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundFloatDataset createRange(final int itemSize, final double stop) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return createRange(itemSize, 0., stop, 1.);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param start<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param stop<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param step<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        static CompoundFloatDataset createRange(final int itemSize, final double start, final double stop,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final double step) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int size = calcSteps(start, stop, step);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                CompoundFloatDataset result = new CompoundFloatDataset(itemSize, new int[] { size });<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (int i = 0; i &lt; size; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        result.data[i * result.isize] = (float) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                return result;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param shape<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return a dataset filled with ones<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        static CompoundFloatDataset ones(final int itemSize, final int... shape) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return new CompoundFloatDataset(itemSize, shape).fill(1);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Create a compound dataset using last dimension of given dataset<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param shareData<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @return compound dataset<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public static CompoundFloatDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (a.getElementsPerItem() != 1) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        logger.error("Need a single-element dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                if (a.getDType() != Dataset.FLOAT32) { // DATA_TYPE<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        logger.error("Dataset type must be float"); // PRIM_TYPE<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        throw new IllegalArgumentException("Dataset type must be float"); // PRIM_TYPE<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                final int[] shape = a.getShapeRef();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                if (shape == null) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new CompoundFloatDataset(0);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>                final int rank = shape.length - 1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                CompoundFloatDataset result = new CompoundFloatDataset(is);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                result.setName(a.getName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                result.setData();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return result;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public FloatDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                FloatDataset result = new FloatDataset(); // CLASS_TYPE<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int is = getElementsPerItem();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                if (is != 1)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        nshape[rank-1] = is;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.shape = nshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.odata = shareData ? data : data.clone();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                result.setName(name);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                result.setData();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return result;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public CompoundFloatDataset fill(final Object obj) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                setDirty();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                float[] vr = DTypeUtils.toFloatArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                IndexIterator iter = getIterator();<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (iter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * This is a typed version of {@link #getBuffer()}<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return data buffer as linear array<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public float[] getData() { // PRIM_TYPE<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return data;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        protected int getBufferLength() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (data == null)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        return 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data.length;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public CompoundFloatDataset getView(boolean deepCopyMetadata) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                CompoundFloatDataset view = new CompoundFloatDataset(isize);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                view.setData();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return view;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>        /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param index<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            absolute index<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return values<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public float[] getAbs(final int index) { // PRIM_TYPE<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                float[] result = new float[isize]; // PRIM_TYPE<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        result[i] = data[index + i];<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return result;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param index<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         *            absolute index<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param values<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public void getAbs(final int index, final float[] values) { // PRIM_TYPE<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        values[i] = data[index + i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>        @Override<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[index] != 0;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public double getElementDoubleAbs(final int index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return data[index];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public long getElementLongAbs(final int index) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return DTypeUtils.toLong(data[index]); // OMIT_TOLONG_INT<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                setDirty();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                float[] dsrc = (float[]) src; // PRIM_TYPE<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        data[dindex + i] = dsrc[sindex + i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param index<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            absolute index<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param val<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         *            new values<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public void setAbs(final int index, final float[] val) { // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                setDirty();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        data[index + i] = val[i];<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Set element value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param index<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            absolute index<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param val<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *            new value<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setAbs(final int index, final float val) { // PRIM_TYPE<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                setDirty();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                data[index] = val;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Object getObject() {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return getFloatArray(); // PRIM_TYPE<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Object getObject(final int i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return getFloatArray(i); // PRIM_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public Object getObject(final int i, final int j) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return getFloatArray(i, j); // PRIM_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Object getObject(final int... pos) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getFloatArray(pos); // PRIM_TYPE<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public byte[] getByteArray() {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                byte[] result = new byte[isize];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                int index = getFirst1DIndex();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return result;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte[] getByteArray(final int i) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                byte[] result = new byte[isize];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                int index = get1DIndex(i);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return result;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                byte[] result = new byte[isize];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                int index = get1DIndex(i, j);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return result;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public byte[] getByteArray(final int... pos) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                byte[] result = new byte[isize];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                int index = get1DIndex(pos);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return result;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public short[] getShortArray() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                short[] result = new short[isize];<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int index = getFirst1DIndex();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return result;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public short[] getShortArray(final int i) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                short[] result = new short[isize];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                int index = get1DIndex(i);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return result;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>        @Override<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public short[] getShortArray(final int i, final int j) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                short[] result = new short[isize];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                int index = get1DIndex(i, j);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                return result;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public short[] getShortArray(final int... pos) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                short[] result = new short[isize];<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int index = get1DIndex(pos);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return result;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public int[] getIntArray() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int[] result = new int[isize];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                int index = getFirst1DIndex();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                return result;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public int[] getIntArray(final int i) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] result = new int[isize];<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int index = get1DIndex(i);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                return result;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>        @Override<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        public int[] getIntArray(final int i, final int j) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] result = new int[isize];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int index = get1DIndex(i, j);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return result;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>        @Override<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        public int[] getIntArray(final int... pos) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                int[] result = new int[isize];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int index = get1DIndex(pos);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return result;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        public long[] getLongArray() {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                long[] result = new long[isize];<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int index = getFirst1DIndex();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return result;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public long[] getLongArray(final int i) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                long[] result = new long[isize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int index = get1DIndex(i);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return result;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Override<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public long[] getLongArray(final int i, final int j) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                long[] result = new long[isize];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                int index = get1DIndex(i, j);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return result;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public long[] getLongArray(final int... pos) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                long[] result = new long[isize];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                int index = get1DIndex(pos);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        result[k] = (long) data[index + k]; // OMIT_UPCAST<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return result;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public float[] getFloatArray() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                float[] result = new float[isize];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int index = getFirst1DIndex();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return result;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public float[] getFloatArray(final int i) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                float[] result = new float[isize];<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                int index = get1DIndex(i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return result;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                float[] result = new float[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int index = get1DIndex(i, j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return result;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public float[] getFloatArray(final int... pos) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                float[] result = new float[isize];<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                int index = get1DIndex(pos);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return result;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public double[] getDoubleArray() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                double[] result = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                int index = getFirst1DIndex();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                return result;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>        @Override<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        public double[] getDoubleArray(final int i) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                double[] result = new double[isize];<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                int index = get1DIndex(i);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return result;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                double[] result = new double[isize];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                int index = get1DIndex(i, j);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return result;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public double[] getDoubleArray(final int... pos) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double[] result = new double[isize];<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                int index = get1DIndex(pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return result;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        @Override<a name="line.772"></a>
+<span class="sourceLineNo">773</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        darray[i] = data[index + i];<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>        @Override<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        public String getString() {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getStringAbs(getFirst1DIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        @Override<a name="line.784"></a>
+<span class="sourceLineNo">785</span>        public String getString(final int i) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                return getStringAbs(get1DIndex(i));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>        @Override<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public String getString(final int i, final int j) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return getStringAbs(get1DIndex(i, j));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public String getString(final int... pos) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return getStringAbs(get1DIndex(pos));<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @Override<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        protected double getFirstValue() {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                return data[getFirst1DIndex()];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>        @Override<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        protected double getFirstValue(int i) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return data[get1DIndex(i)];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        protected double getFirstValue(int i, int j) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return data[get1DIndex(i, j)];<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Override<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        protected double getFirstValue(final int... pos) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                return data[get1DIndex(pos)];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Override<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public Object getObjectAbs(final int index) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                float[] result = new float[isize]; // PRIM_TYPE<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result[i] = data[index + i];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return result;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getStringAbs(final int index) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                StringBuilder s = new StringBuilder();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                s.append('(');<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                s.append(stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        stringFormat.format(data[index]));<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        s.append(' ');<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        s.append(stringFormat == null ? String.format("%.8g", data[index + i]) : // FORMAT_STRING<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                stringFormat.format(data[index + i]));<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                s.append(')');<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return s.toString();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                float[] oa = DTypeUtils.toFloatArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setAbs(index, oa);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void set(final Object obj) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setItem(DTypeUtils.toFloatArray(obj, isize)); // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        @Override<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        public void set(final Object obj, final int i) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                setItem(DTypeUtils.toFloatArray(obj, isize), i); // CLASS_TYPE<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj, final int i, final int j) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                setItem(DTypeUtils.toFloatArray(obj, isize), i, j); // CLASS_TYPE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        @Override<a name="line.864"></a>
+<span class="sourceLineNo">865</span>        public void set(final Object obj, int... pos) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        pos = new int[shape.length];<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                setItem(DTypeUtils.toFloatArray(obj, isize), pos); // CLASS_TYPE<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Set values at first position. The dataset must not be null<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         *<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param d<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public void setItem(final float[] d) { // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (d.length &gt; isize) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(getFirst1DIndex(), d);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Set values at given position. The dataset must be 1D<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         *<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param d<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param i<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void setItem(final float[] d, final int i) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (d.length &gt; isize) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                setAbs(get1DIndex(i), d);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * Set values at given position. The dataset must be 1D<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         *<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param d<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param i<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param j<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         */<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public void setItem(final float[] d, final int i, final int j) { // PRIM_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (d.length &gt; isize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                setAbs(get1DIndex(i, j), d);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        /**<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * Set values at given position<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         *<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param d<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param pos<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public void setItem(final float[] d, final int... pos) { // PRIM_TYPE<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (d.length &gt; isize) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setAbs(get1DIndex(pos), d);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                for (int i = 0; i &lt; isize; i++)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        data[index + i] = (float) d[i]; // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public void resize(int... newShape) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setDirty();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                IndexIterator iter = getIterator();<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                float[] ndata; // PRIM_TYPE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                try {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        ndata = createArray(nsize);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                } catch (Throwable t) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        throw new IllegalArgumentException(t);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                int i = 0;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                ndata[i++] = data[iter.index + j];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                odata = data = ndata;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                size = nsize;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                shape = newShape;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                stride = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                offset = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                base = null;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public CompoundFloatDataset getSlice(final SliceIterator siter) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                CompoundFloatDataset result = new CompoundFloatDataset(isize, siter.getShape());<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                IndexIterator riter = result.getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return result;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public FloatDataset getElementsView(int element) { // CLASS_TYPE<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (element &lt; 0)<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        element += isize;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                FloatDataset view = new FloatDataset(shape); // CLASS_TYPE<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                copyToView(this, view, true, true);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                view.setData();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (view.stride == null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        int[] offset = new int[1];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        view.stride = createStrides(this, offset);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        view.offset = offset[0] + element;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        view.base = base == null ? this : base;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset += element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return view;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        }<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public FloatDataset getElements(int element) { // CLASS_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final FloatDataset elements = new FloatDataset(shape); // CLASS_TYPE<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                copyElements(elements, element);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return elements;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public void copyElements(Dataset destination, int element) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                if (element &lt; 0)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        element += isize;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                final IndexIterator it = getIterator(element);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                final float[] elements = ((FloatDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                destination.setDirty();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int n = 0;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                while (it.hasNext()) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        elements[n] = data[it.index];<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        n++;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public void setElements(Dataset source, int element) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                setDirty();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (element &lt; 0)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        element += isize;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                final IndexIterator it = getIterator(element);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                final float[] elements = ((FloatDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                int n = 0;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        data[it.index] = elements[n];<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        n++;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        @Override<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                IndexIterator riter = result.getIterator();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                result.setDirty();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                float[] rdata = ((CompoundFloatDataset) result).data; // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                rdata[riter.index + i] = data[iter.index + i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public CompoundFloatDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (o instanceof Dataset) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        Dataset ds = (Dataset) o;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (length != ds.getSize()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                throw new IllegalArgumentException(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        IndexIterator iter = ds.getIterator();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                data[biter.index + i] = (float) ds.getElementDoubleAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        data[biter.index] = (float) ds.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                data[biter.index + i] = 0;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                } else {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        try {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                while (biter.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                                data[biter.index + i] = vr[i];<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        } catch (IllegalArgumentException e) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return this;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        @Override<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public CompoundFloatDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                setDirty();<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (o instanceof Dataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        Dataset ds = (Dataset) o;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException(<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span><a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                double[] temp = new double[isize];<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                data[iter.index + i] = (float) ds.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        data[iter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                data[iter.index + i] = 0;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                } else {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        try {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        setAbs(iter.index, vr);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        } catch (IllegalArgumentException e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                return this;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        @Override<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public CompoundFloatDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                setDirty();<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                final int[] pos = iter.getPos();<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                if (o instanceof Dataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        Dataset ds = (Dataset) o;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                throw new IllegalArgumentException(<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                double[] temp = new double[isize];<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        } else {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        int n = get1DIndex(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        data[n] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[n + i] = 0;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        try {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (iter.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        } catch (IllegalArgumentException e) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                return this;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        @Override<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        CompoundFloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                setDirty();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                final int is = view.getElementsPerItem();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                if (is &gt; 1) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        final float bv = (float) it.bDouble; // PRIM_TYPE // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        data[it.aIndex] = bv;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex + j] = bv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex + j] = (float) d.getElementDoubleAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                }<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                return this;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        @Override<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        public CompoundFloatDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                setDirty();<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                if (o instanceof IDataset) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        final IDataset ds = (IDataset) o;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final int[] oshape = ds.getShape();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                throw new IllegalArgumentException(String.format(<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                                Arrays.toString(siter.getShape())));<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (ds instanceof Dataset) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final Dataset ads = (Dataset) ds;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                        data[siter.index + i] = (float) ads.getElementDoubleAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                                data[siter.index] = (float) ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                        data[siter.index + i] = 0;<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                final int[] pos = oiter.getPos();<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                data[siter.index] = ds.getFloat(pos); // PRIM_TYPE<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                        data[siter.index + i] = 0;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                final float[] val = DTypeUtils.toFloatArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        data[siter.index + i] = val[i];<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                        try {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                final float[] vr = DTypeUtils.toFloatArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                while (siter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                data[siter.index + i] = vr[i];<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } catch (IllegalArgumentException e) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                return this;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                float[] ddata = (float[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        throw new IllegalArgumentException(String.format(<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        dest.getElementsPerItem(), isize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                }<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span><a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                dest.setDirty();<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        @Override<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                setDirty();<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                float[] sdata = (float[]) src; // PRIM_TYPE<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                data[siter.index + j] = sdata[isize * i + j];<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span><a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        @Override<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public boolean containsNans() {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                if (Float.isNaN(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                        return true; // REAL_ONLY<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                        } // REAL_ONLY<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                } // REAL_ONLY<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                return false;<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        }<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span><a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>        @Override<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        public boolean containsInfs() {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                final IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                if (Float.isInfinite(data[iter.index + i])) // CLASS_TYPE // REAL_ONLY<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                        return true; // REAL_ONLY<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                        } // REAL_ONLY<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                } // REAL_ONLY<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                return false;<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>        }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>        @Override<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        public boolean containsInvalidNumbers() {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                float x = data[iter.index + i]; // PRIM_TYPE // REAL_ONLY<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                if (Float.isNaN(x) || Float.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        return true; // REAL_ONLY<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                        } // REAL_ONLY<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                } // REAL_ONLY<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                return false;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>        }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        @Override<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>        public CompoundFloatDataset iadd(final Object b) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                setDirty();<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                int is = bds.getElementsPerItem();<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                if (bds.getSize() == 1) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                        final IndexIterator it = getIterator();<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                        final int bOffset = bds.getOffset();<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                        if (is == 1) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                if (useLong) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                        while (it.hasNext()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        data[it.index + i] += lb;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                                        while (it.hasNext()) {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                                                        data[it.index + i] += db;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                                                }<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                                        }<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                        } else if (is == isize) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                if (useLong) {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        while (it.hasNext()) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        while (it.hasNext()) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                }<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                        } else {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        }<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                } else {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                        it.setOutputDouble(!useLong);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        if (is == 1) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                if (useLong) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                        while (it.hasNext()) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                final long lb = it.bLong;<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                data[it.aIndex] += lb;<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        data[it.aIndex + i] += lb;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                        }<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                } else {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        while (it.hasNext()) {<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                final double db = it.bDouble;<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                data[it.aIndex] += db;<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                        data[it.aIndex + i] += db;<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                        }<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                        } else if (is == isize) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                if (useLong) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                        while (it.hasNext()) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                data[it.aIndex] += it.bLong;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                                }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        }<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                } else {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                        while (it.hasNext()) {<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                                }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                        }<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                }<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                        } else {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                        }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                }<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                return this;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>        }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>        @Override<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>        public CompoundFloatDataset isubtract(final Object b) {<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                setDirty();<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                int is = bds.getElementsPerItem();<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                if (bds.getSize() == 1) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                        final IndexIterator it = getIterator();<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                        final int bOffset = bds.getOffset();<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                        if (is == 1) {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                if (useLong) {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        while (it.hasNext()) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                        data[it.index + i] -= lb;<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                        }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                } else {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                        while (it.hasNext()) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                        data[it.index + i] -= db;<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                                }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                        }<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                        } else if (is == isize) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                if (useLong) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        while (it.hasNext()) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                }<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                        }<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                        } else {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        it.setOutputDouble(!useLong);<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                        if (is == 1) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                if (useLong) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                        while (it.hasNext()) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                final long lb = it.bLong;<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                data[it.aIndex] += lb;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                }<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                } else {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        while (it.hasNext()) {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                final double db = it.bDouble;<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                data[it.aIndex] += db;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                        data[it.aIndex + i] -= db;<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                                }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                        } else if (is == isize) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                if (useLong) {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                        while (it.hasNext()) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                data[it.aIndex] += it.bLong;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                } else {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                        while (it.hasNext()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                }<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                }<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                        } else {<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                        }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                }<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                return this;<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>        }<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span><a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>        @Override<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>        public CompoundFloatDataset imultiply(final Object b) {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                setDirty();<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                int is = bds.getElementsPerItem();<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                if (bds.getSize() == 1) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                        final IndexIterator it = getIterator();<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                        final int bOffset = bds.getOffset();<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                        if (useLong) {<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                if (is == 1) {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        while (it.hasNext()) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                        data[it.index + i] *= lb;<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                }<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                        }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                } else if (is == isize) {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                        while (it.hasNext()) {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                                }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                        }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                                } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                }<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                        } else {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                if (is == 1) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                        while (it.hasNext()) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                        data[it.index + i] *= db;<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                                }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                        }<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                } else if (is == isize) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                        while (it.hasNext()) {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                } else {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                        }<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                } else {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                        it.setOutputDouble(!useLong);<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        if (useLong) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                if (is == 1) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        while (it.hasNext()) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                                final double lb = it.bLong;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                                        data[it.aIndex + i] *= lb;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                }<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                        }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                } else if (is == isize) {<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                        while (it.hasNext()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                        }<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                } else {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                        } else {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                if (is == 1) {<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                        while (it.hasNext()) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                                final double db = it.bDouble;<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                        data[it.aIndex + i] *= db;<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                        }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                } else if (is == isize) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                        while (it.hasNext()) {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                } else {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                }<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                        }<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                return this;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>        }<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        @Override<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        public CompoundFloatDataset idivide(final Object b) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                setDirty();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                int is = bds.getElementsPerItem();<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                if (bds.getSize() == 1) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                        final IndexIterator it = getIterator();<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        final int bOffset = bds.getOffset();<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        if (useLong) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                if (is == 1) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        // if (lb == 0) { // INT_USE<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        //      fill(0); // INT_USE<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                        // } else { // INT_USE<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        while (it.hasNext()) {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                        data[it.index + i] /= lb;<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                        // } // INT_USE<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                } else if (is == isize) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                        while (it.hasNext()) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                                        data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                                }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                        }<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                } else {<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                        } else {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                if (is == 1) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                        // if (db == 0) { // INT_USE<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        //      fill(0); // INT_USE<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                        // } else { // INT_USE<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        while (it.hasNext()) {<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                        data[it.index + i] /= db;<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                                }<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                        // } // INT_USE<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                } else if (is == isize) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                        while (it.hasNext()) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        }<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                } else {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                }<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                        }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                } else {<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        it.setOutputDouble(!useLong);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                        if (useLong) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                if (is == 1) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                        while (it.hasNext()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                final long lb = it.bLong;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                // if (lb == 0) { // INT_USE<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                //      }// INT_USE<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                // } else { // INT_USE<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                                // } // INT_USE<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                } else if (is == isize) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        while (it.hasNext()) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                        } else {<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                if (is == 1) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                        while (it.hasNext()) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                final double db = it.bDouble;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                // if (db == 0) { // INT_USE<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                                //      for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                //      }// INT_USE<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                // } else { // INT_USE<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                                        data[it.aIndex + i] /= db;<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                                }<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                                // } // INT_USE<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                        }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                } else if (is == isize) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        while (it.hasNext()) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                                        data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                                }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                } else {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                return this;<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>        }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>        public CompoundFloatDataset ifloor() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                setDirty(); // REAL_ONLY<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                final IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                        for (int i = 0; i &lt; isize; i++) { // REAL_ONLY<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                data[it.index + i] = (float) Math.floor(data[it.index] + i); // REAL_ONLY // ADD_CAST<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        } // REAL_ONLY<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                } // REAL_ONLY<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                return this;<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>        }<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span><a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        @Override<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>        public CompoundFloatDataset iremainder(final Object b) {<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                setDirty();<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                int is = bds.getElementsPerItem();<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                if (bds.getSize() == 1) {<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        final IndexIterator it = getIterator();<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                        final int bOffset = bds.getOffset();<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                        if (useLong) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                if (is == 1) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        // if (lb == 0) { // INT_USE<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                        //      fill(0); // INT_USE<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        // } else { // INT_USE<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                        while (it.hasNext()) {<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                                        data[it.index + i] %= lb;<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                                }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                        }<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                        // } // INT_USE<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                } else if (is == isize) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                        while (it.hasNext()) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                                        data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                                }<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                } else {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                }<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                        } else {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                if (is == 1) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        // if (db == 0) { // INT_USE<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                        //      fill(0); // INT_USE<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                        // } else { // INT_USE<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                        while (it.hasNext()) {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                                        data[it.index + i] %= db;<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                                }<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                        }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                        // } // INT_USE<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                } else if (is == isize) {<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                        data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                }<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                        }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                } else {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                        it.setOutputDouble(!useLong);<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                        if (useLong) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                if (is == 1) {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                        while (it.hasNext()) {<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                final long lb = it.bLong;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                // if (lb == 0) { // INT_USE<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                // } else { // INT_USE<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                // } // INT_USE<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                } else if (is == isize) {<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                        while (it.hasNext()) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                                        data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        }<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                } else {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                }<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                        } else {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                if (is == 1) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                        while (it.hasNext()) {<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                final double db = it.bDouble;<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                // if (db == 0) { // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                //      for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                //              data[it.aIndex + i] = 0; // INT_USE<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                // } else { // INT_USE<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                        data[it.aIndex + i] %= db;<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                                }<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                                // } // INT_USE<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        }<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                } else if (is == isize) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                        while (it.hasNext()) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                        data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                                }<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                        }<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                } else {<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                        }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                return this;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span><a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>        @Override<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        public CompoundFloatDataset ipower(final Object b) {<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                setDirty();<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                final int is = bds.getElementsPerItem();<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                if (bds.getSize() == 1) {<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        final int bOffset = bds.getOffset();<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        final IndexIterator it = getIterator();<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        if (bds.isComplex()) {<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                                if (vi == 0) {<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                                        while (it.hasNext()) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        // } else { // INT_USE<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                        // } // INT_USE<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                }<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                        }<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                } else {<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                        while (it.hasNext()) {<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        //      data[it.index + i] = 0; // INT_USE<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                        // } else { // INT_USE<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                                        data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                                        // } // INT_USE<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                                }<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                        }<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                }<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        } else if (is == 1) {<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                while (it.hasNext()) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                                // } else { // INT_USE<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                                // } // INT_USE<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                        }<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                }<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        } else if (is == isize) {<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                while (it.hasNext()) {<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                                //      data[it.index + i] = 0; // INT_USE<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                // } else { // INT_USE<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                data[it.index + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                // } // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                        }<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                }<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                        }<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                } else {<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                        it.setOutputDouble(true);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                        if (bds.isComplex()) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                while (it.hasNext()) {<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        // } else { // INT_USE<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                        // } // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                                // } else { // INT_USE<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                data[it.aIndex + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                // } // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        }<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                }<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                        } else {<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                while (it.hasNext()) {<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        // } else { // INT_USE<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                        // } // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                                //      data[it.aIndex + i] = 0; // INT_USE<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                // } else { // INT_USE<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                data[it.aIndex + i] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                // } // INT_USE<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                        }<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                }<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                        }<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                return this;<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span><a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        @Override<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                it.setOutputDouble(true);<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                double sum = 0;<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                double comp = 0;<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                final int bis = bds.getElementsPerItem();<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span><a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                if (bis == 1) {<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                        if (w == null) {<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                                while (it.hasNext()) {<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                                        final double db = it.bDouble;<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                                        double diff = it.aDouble - db;<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                                        continue; // REAL_ONLY<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                                skip = true; // REAL_ONLY<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                                                break; // REAL_ONLY<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                        } // REAL_ONLY<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                } // REAL_ONLY<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                if (skip) { // REAL_ONLY<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                        continue; // REAL_ONLY<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                } // REAL_ONLY<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        } // REAL_ONLY<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                        double err = diff * diff - comp;<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                                        double temp = sum + err;<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                        comp = (temp - sum) - err;<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                        sum = temp;<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                                err = diff * diff - comp;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                                temp = sum + err;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                                comp = (temp - sum) - err;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                                sum = temp;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                        }<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                }<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                        } else {<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                IndexIterator itw = w.getIterator();<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                        final double db = it.bDouble;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                        double diff = it.aDouble - db;<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                                                        continue; // REAL_ONLY<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                                        if (Double.isNaN(data[it.aIndex + i])) { // REAL_ONLY<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                                                skip = true; // REAL_ONLY<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                                                break; // REAL_ONLY<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                                        } // REAL_ONLY<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                                } // REAL_ONLY<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                                if (skip) { // REAL_ONLY<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                                        continue; // REAL_ONLY<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                } // REAL_ONLY<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                        } // REAL_ONLY<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                        double err = diff * diff * dw - comp;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                        double temp = sum + err;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        comp = (temp - sum) - err;<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                        sum = temp;<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                                err = diff * diff * dw - comp;<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                                temp = sum + err;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                                comp = (temp - sum) - err;<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                                sum = temp;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        }<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                }<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                        }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                } else {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                        if (w == null) {<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                while (it.hasNext()) {<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                                        continue; // REAL_ONLY<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                                                                skip = true; // REAL_ONLY<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                                                break; // REAL_ONLY<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                                                        } // REAL_ONLY<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                                                } // REAL_ONLY<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                                                if (skip) { // REAL_ONLY<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                                                        continue; // REAL_ONLY<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                                                } // REAL_ONLY<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                                        } // REAL_ONLY<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                                        double err = diff * diff - comp;<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>                                        double temp = sum + err;<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>                                        comp = (temp - sum) - err;<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>                                        sum = temp;<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                                                err = diff * diff - comp;<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                                                temp = sum + err;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                                                comp = (temp - sum) - err;<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                                sum = temp;<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                                        }<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                                }<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                        } else {<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                                IndexIterator itw = w.getIterator();<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>                                        if (ignoreNaNs) { // REAL_ONLY<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>                                                if (Double.isNaN(diff)) // REAL_ONLY<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>                                                        continue; // REAL_ONLY<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>                                                boolean skip = false; // REAL_ONLY<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>                                                for (int i = 1; i &lt; isize; i++) { // REAL_ONLY<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>                                                        if (Double.isNaN(data[it.aIndex + i]) || Double.isNaN(bds.getElementDoubleAbs(it.bIndex + i))) { // REAL_ONLY<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                                                                skip = true; // REAL_ONLY<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                                                                break; // REAL_ONLY<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                                                        } // REAL_ONLY<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                                } // REAL_ONLY<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                                                if (skip) { // REAL_ONLY<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>                                                        continue; // REAL_ONLY<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                                                } // REAL_ONLY<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>                                        } // REAL_ONLY<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>                                        double err = diff * diff * dw - comp;<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>                                        double temp = sum + err;<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>                                        comp = (temp - sum) - err;<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>                                        sum = temp;<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>                                                err = diff * diff * dw - comp;<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                                                temp = sum + err;<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                                                comp = (temp - sum) - err;<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                                                sum = temp;<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                                        }<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                                }<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>                        }<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                }<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                return sum;<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>        }<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>}<a name="line.2126"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html
new file mode 100644
index 0000000..211b839
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundIntegerDataset.html
@@ -0,0 +1,2145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for int values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundIntegerDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected int[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (int[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected int[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                int[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new int[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT32; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundIntegerDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundIntegerDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundIntegerDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundIntegerDataset(final CompoundIntegerDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundIntegerDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (int) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundIntegerDataset(final int itemSize, final int[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundIntegerDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (int) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (int) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundIntegerDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final int v = (int) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (int) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (!super.equals(obj)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return true;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                CompoundIntegerDataset other = (CompoundIntegerDataset) obj;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                IndexIterator iter = getIterator();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                IndexIterator oiter = other.getIterator();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return false;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return true;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int hashCode() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return super.hashCode();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public CompoundIntegerDataset clone() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return new CompoundIntegerDataset(this);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * elemental dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param obj<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset with contents given by input<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        static CompoundIntegerDataset createFromObject(final Object obj) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                IntegerDataset result = IntegerDataset.createFromObject(obj); // CLASS_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return (CompoundIntegerDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * sequences or arrays are padded with zeros.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         *<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param itemSize<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param obj<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return dataset with contents given by input<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static CompoundIntegerDataset createFromObject(final int itemSize, final Object obj) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                IntegerDataset result = IntegerDataset.createFromObject(obj); // CLASS_TYPE<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return new CompoundIntegerDataset(itemSize, result.getData(), null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param stop<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundIntegerDataset createRange(final int itemSize, final double stop) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return createRange(itemSize, 0., stop, 1.);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param start<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param stop<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param step<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        static CompoundIntegerDataset createRange(final int itemSize, final double start, final double stop,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final double step) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int size = calcSteps(start, stop, step);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(itemSize, new int[] { size });<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (int i = 0; i &lt; size; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        result.data[i * result.isize] = (int) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                return result;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param shape<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return a dataset filled with ones<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        static CompoundIntegerDataset ones(final int itemSize, final int... shape) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return new CompoundIntegerDataset(itemSize, shape).fill(1);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Create a compound dataset using last dimension of given dataset<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param shareData<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @return compound dataset<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public static CompoundIntegerDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (a.getElementsPerItem() != 1) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        logger.error("Need a single-element dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                if (a.getDType() != Dataset.INT32) { // DATA_TYPE<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        logger.error("Dataset type must be int"); // PRIM_TYPE<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        throw new IllegalArgumentException("Dataset type must be int"); // PRIM_TYPE<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                final int[] shape = a.getShapeRef();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                if (shape == null) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new CompoundIntegerDataset(0);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>                final int rank = shape.length - 1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(is);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                result.setName(a.getName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                result.setData();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return result;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public IntegerDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                IntegerDataset result = new IntegerDataset(); // CLASS_TYPE<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int is = getElementsPerItem();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                if (is != 1)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        nshape[rank-1] = is;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.shape = nshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.odata = shareData ? data : data.clone();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                result.setName(name);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                result.setData();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return result;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public CompoundIntegerDataset fill(final Object obj) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                setDirty();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                int[] vr = DTypeUtils.toIntegerArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                IndexIterator iter = getIterator();<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (iter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * This is a typed version of {@link #getBuffer()}<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return data buffer as linear array<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public int[] getData() { // PRIM_TYPE<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return data;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        protected int getBufferLength() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (data == null)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        return 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data.length;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public CompoundIntegerDataset getView(boolean deepCopyMetadata) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                CompoundIntegerDataset view = new CompoundIntegerDataset(isize);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                view.setData();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return view;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>        /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param index<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            absolute index<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return values<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public int[] getAbs(final int index) { // PRIM_TYPE<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                int[] result = new int[isize]; // PRIM_TYPE<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        result[i] = data[index + i];<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return result;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param index<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         *            absolute index<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param values<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public void getAbs(final int index, final int[] values) { // PRIM_TYPE<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        values[i] = data[index + i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>        @Override<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[index] != 0;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public double getElementDoubleAbs(final int index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return data[index];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public long getElementLongAbs(final int index) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return data[index]; // OMIT_TOLONG_INT<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                setDirty();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                int[] dsrc = (int[]) src; // PRIM_TYPE<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        data[dindex + i] = dsrc[sindex + i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param index<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            absolute index<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param val<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         *            new values<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public void setAbs(final int index, final int[] val) { // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                setDirty();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        data[index + i] = val[i];<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Set element value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param index<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            absolute index<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param val<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *            new value<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setAbs(final int index, final int val) { // PRIM_TYPE<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                setDirty();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                data[index] = val;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Object getObject() {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return getIntArray(); // PRIM_TYPE<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Object getObject(final int i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return getIntArray(i); // PRIM_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public Object getObject(final int i, final int j) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return getIntArray(i, j); // PRIM_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Object getObject(final int... pos) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getIntArray(pos); // PRIM_TYPE<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public byte[] getByteArray() {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                byte[] result = new byte[isize];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                int index = getFirst1DIndex();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return result;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte[] getByteArray(final int i) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                byte[] result = new byte[isize];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                int index = get1DIndex(i);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return result;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                byte[] result = new byte[isize];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                int index = get1DIndex(i, j);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return result;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public byte[] getByteArray(final int... pos) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                byte[] result = new byte[isize];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                int index = get1DIndex(pos);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return result;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public short[] getShortArray() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                short[] result = new short[isize];<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int index = getFirst1DIndex();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return result;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public short[] getShortArray(final int i) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                short[] result = new short[isize];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                int index = get1DIndex(i);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return result;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>        @Override<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public short[] getShortArray(final int i, final int j) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                short[] result = new short[isize];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                int index = get1DIndex(i, j);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                return result;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public short[] getShortArray(final int... pos) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                short[] result = new short[isize];<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int index = get1DIndex(pos);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return result;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public int[] getIntArray() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int[] result = new int[isize];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                int index = getFirst1DIndex();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                return result;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public int[] getIntArray(final int i) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] result = new int[isize];<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int index = get1DIndex(i);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                return result;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>        @Override<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        public int[] getIntArray(final int i, final int j) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] result = new int[isize];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int index = get1DIndex(i, j);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return result;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>        @Override<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        public int[] getIntArray(final int... pos) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                int[] result = new int[isize];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int index = get1DIndex(pos);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return result;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        public long[] getLongArray() {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                long[] result = new long[isize];<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int index = getFirst1DIndex();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return result;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public long[] getLongArray(final int i) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                long[] result = new long[isize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int index = get1DIndex(i);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return result;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Override<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public long[] getLongArray(final int i, final int j) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                long[] result = new long[isize];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                int index = get1DIndex(i, j);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return result;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public long[] getLongArray(final int... pos) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                long[] result = new long[isize];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                int index = get1DIndex(pos);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return result;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public float[] getFloatArray() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                float[] result = new float[isize];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int index = getFirst1DIndex();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return result;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public float[] getFloatArray(final int i) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                float[] result = new float[isize];<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                int index = get1DIndex(i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return result;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                float[] result = new float[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int index = get1DIndex(i, j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return result;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public float[] getFloatArray(final int... pos) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                float[] result = new float[isize];<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                int index = get1DIndex(pos);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return result;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public double[] getDoubleArray() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                double[] result = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                int index = getFirst1DIndex();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                return result;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>        @Override<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        public double[] getDoubleArray(final int i) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                double[] result = new double[isize];<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                int index = get1DIndex(i);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return result;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                double[] result = new double[isize];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                int index = get1DIndex(i, j);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return result;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public double[] getDoubleArray(final int... pos) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double[] result = new double[isize];<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                int index = get1DIndex(pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return result;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        @Override<a name="line.772"></a>
+<span class="sourceLineNo">773</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        darray[i] = data[index + i];<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>        @Override<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        public String getString() {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getStringAbs(getFirst1DIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        @Override<a name="line.784"></a>
+<span class="sourceLineNo">785</span>        public String getString(final int i) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                return getStringAbs(get1DIndex(i));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>        @Override<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public String getString(final int i, final int j) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return getStringAbs(get1DIndex(i, j));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public String getString(final int... pos) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return getStringAbs(get1DIndex(pos));<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @Override<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        protected double getFirstValue() {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                return data[getFirst1DIndex()];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>        @Override<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        protected double getFirstValue(int i) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return data[get1DIndex(i)];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        protected double getFirstValue(int i, int j) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return data[get1DIndex(i, j)];<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Override<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        protected double getFirstValue(final int... pos) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                return data[get1DIndex(pos)];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Override<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public Object getObjectAbs(final int index) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                int[] result = new int[isize]; // PRIM_TYPE<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result[i] = data[index + i];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return result;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getStringAbs(final int index) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                StringBuilder s = new StringBuilder();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                s.append('(');<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        stringFormat.format(data[index]));<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        s.append(' ');<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                stringFormat.format(data[index + i]));<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                s.append(')');<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return s.toString();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                int[] oa = DTypeUtils.toIntegerArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setAbs(index, oa);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void set(final Object obj) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setItem(DTypeUtils.toIntegerArray(obj, isize)); // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        @Override<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        public void set(final Object obj, final int i) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), i); // CLASS_TYPE<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj, final int i, final int j) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), i, j); // CLASS_TYPE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        @Override<a name="line.864"></a>
+<span class="sourceLineNo">865</span>        public void set(final Object obj, int... pos) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        pos = new int[shape.length];<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                setItem(DTypeUtils.toIntegerArray(obj, isize), pos); // CLASS_TYPE<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Set values at first position. The dataset must not be null<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         *<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param d<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public void setItem(final int[] d) { // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (d.length &gt; isize) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(getFirst1DIndex(), d);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Set values at given position. The dataset must be 1D<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         *<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param d<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param i<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void setItem(final int[] d, final int i) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (d.length &gt; isize) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                setAbs(get1DIndex(i), d);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * Set values at given position. The dataset must be 1D<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         *<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param d<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param i<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param j<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         */<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public void setItem(final int[] d, final int i, final int j) { // PRIM_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (d.length &gt; isize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                setAbs(get1DIndex(i, j), d);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        /**<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * Set values at given position<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         *<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param d<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param pos<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public void setItem(final int[] d, final int... pos) { // PRIM_TYPE<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (d.length &gt; isize) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setAbs(get1DIndex(pos), d);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                for (int i = 0; i &lt; isize; i++)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        data[index + i] = (int) d[i]; // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public void resize(int... newShape) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setDirty();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                IndexIterator iter = getIterator();<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                int[] ndata; // PRIM_TYPE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                try {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        ndata = createArray(nsize);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                } catch (Throwable t) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        throw new IllegalArgumentException(t);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                int i = 0;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                ndata[i++] = data[iter.index + j];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                odata = data = ndata;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                size = nsize;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                shape = newShape;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                stride = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                offset = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                base = null;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public CompoundIntegerDataset getSlice(final SliceIterator siter) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                CompoundIntegerDataset result = new CompoundIntegerDataset(isize, siter.getShape());<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                int[] rdata = result.data; // PRIM_TYPE<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                IndexIterator riter = result.getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return result;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public IntegerDataset getElementsView(int element) { // CLASS_TYPE<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (element &lt; 0)<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        element += isize;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                IntegerDataset view = new IntegerDataset(shape); // CLASS_TYPE<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                copyToView(this, view, true, true);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                view.setData();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (view.stride == null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        int[] offset = new int[1];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        view.stride = createStrides(this, offset);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        view.offset = offset[0] + element;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        view.base = base == null ? this : base;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset += element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return view;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        }<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public IntegerDataset getElements(int element) { // CLASS_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final IntegerDataset elements = new IntegerDataset(shape); // CLASS_TYPE<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                copyElements(elements, element);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return elements;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public void copyElements(Dataset destination, int element) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                if (element &lt; 0)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        element += isize;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                final IndexIterator it = getIterator(element);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                final int[] elements = ((IntegerDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                destination.setDirty();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int n = 0;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                while (it.hasNext()) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        elements[n] = data[it.index];<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        n++;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public void setElements(Dataset source, int element) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                setDirty();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (element &lt; 0)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        element += isize;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                final IndexIterator it = getIterator(element);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                final int[] elements = ((IntegerDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                int n = 0;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        data[it.index] = elements[n];<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        n++;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        @Override<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                IndexIterator riter = result.getIterator();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                result.setDirty();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                int[] rdata = ((CompoundIntegerDataset) result).data; // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                rdata[riter.index + i] = data[iter.index + i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public CompoundIntegerDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (o instanceof Dataset) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        Dataset ds = (Dataset) o;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (length != ds.getSize()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                throw new IllegalArgumentException(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        IndexIterator iter = ds.getIterator();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                data[biter.index + i] = (int) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        data[biter.index] = (int) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                data[biter.index + i] = 0;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                } else {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        try {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                while (biter.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                                data[biter.index + i] = vr[i];<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        } catch (IllegalArgumentException e) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return this;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        @Override<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public CompoundIntegerDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                setDirty();<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (o instanceof Dataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        Dataset ds = (Dataset) o;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException(<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span><a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                double[] temp = new double[isize];<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                data[iter.index + i] = (int) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        data[iter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                data[iter.index + i] = 0;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                } else {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        try {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        setAbs(iter.index, vr);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        } catch (IllegalArgumentException e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                return this;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        @Override<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public CompoundIntegerDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                setDirty();<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                final int[] pos = iter.getPos();<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                if (o instanceof Dataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        Dataset ds = (Dataset) o;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                throw new IllegalArgumentException(<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                double[] temp = new double[isize];<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        } else {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        int n = get1DIndex(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        data[n] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[n + i] = 0;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        try {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (iter.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        } catch (IllegalArgumentException e) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                return this;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        @Override<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        CompoundIntegerDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                setDirty();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                final int is = view.getElementsPerItem();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                if (is &gt; 1) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        final int bv = (int) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        data[it.aIndex] = bv;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex + j] = bv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex + j] = (int) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                }<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                return this;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        @Override<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        public CompoundIntegerDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                setDirty();<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                if (o instanceof IDataset) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        final IDataset ds = (IDataset) o;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final int[] oshape = ds.getShape();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                throw new IllegalArgumentException(String.format(<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                                Arrays.toString(siter.getShape())));<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (ds instanceof Dataset) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final Dataset ads = (Dataset) ds;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                        data[siter.index + i] = (int) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                                data[siter.index] = (int) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                        data[siter.index + i] = 0;<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                final int[] pos = oiter.getPos();<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                data[siter.index] = ds.getInt(pos); // PRIM_TYPE<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                        data[siter.index + i] = 0;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                final int[] val = DTypeUtils.toIntegerArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        data[siter.index + i] = val[i];<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                        try {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                final int[] vr = DTypeUtils.toIntegerArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                while (siter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                data[siter.index + i] = vr[i];<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } catch (IllegalArgumentException e) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                return this;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                int[] ddata = (int[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        throw new IllegalArgumentException(String.format(<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        dest.getElementsPerItem(), isize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                }<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span><a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                dest.setDirty();<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        @Override<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                setDirty();<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                int[] sdata = (int[]) src; // PRIM_TYPE<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                data[siter.index + j] = sdata[isize * i + j];<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span><a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        @Override<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public boolean containsNans() {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                return false;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        @Override<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        public boolean containsInfs() {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                return false;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        }<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span><a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        @Override<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        public boolean containsInvalidNumbers() {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                return false;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>        @Override<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        public CompoundIntegerDataset iadd(final Object b) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                setDirty();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                int is = bds.getElementsPerItem();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                if (bds.getSize() == 1) {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        final IndexIterator it = getIterator();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                        final int bOffset = bds.getOffset();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (is == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                if (useLong) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        while (it.hasNext()) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                        data[it.index + i] += lb;<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                } else {<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        while (it.hasNext()) {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                                        data[it.index + i] += db;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                        } else if (is == isize) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                if (useLong) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        while (it.hasNext()) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                } else {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                        while (it.hasNext()) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                }<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                        }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                        } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        }<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                } else {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        it.setOutputDouble(!useLong);<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (is == 1) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (useLong) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                final long lb = it.bLong;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                                data[it.aIndex] += lb;<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.aIndex + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        while (it.hasNext()) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                final double db = it.bDouble;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                data[it.aIndex] += db;<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        data[it.aIndex + i] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                }<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        } else if (is == isize) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                if (useLong) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                        while (it.hasNext()) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                data[it.aIndex] += it.bLong;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                } else {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                        while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                        } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                return this;<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        @Override<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        public CompoundIntegerDataset isubtract(final Object b) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                setDirty();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                int is = bds.getElementsPerItem();<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                if (bds.getSize() == 1) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                        final IndexIterator it = getIterator();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                        final int bOffset = bds.getOffset();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        if (is == 1) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                if (useLong) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        while (it.hasNext()) {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                        data[it.index + i] -= lb;<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                        data[it.index + i] -= db;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                }<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                        } else if (is == isize) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                if (useLong) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        while (it.hasNext()) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                        }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                } else {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                        while (it.hasNext()) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                        }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                        } else {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                        }<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                } else {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        it.setOutputDouble(!useLong);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        if (is == 1) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                if (useLong) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                        while (it.hasNext()) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                final long lb = it.bLong;<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                data[it.aIndex] += lb;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                final double db = it.bDouble;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                data[it.aIndex] += db;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                        data[it.aIndex + i] -= db;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                        }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        } else if (is == isize) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                if (useLong) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                        while (it.hasNext()) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                data[it.aIndex] += it.bLong;<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                } else {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                        while (it.hasNext()) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                        } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                return this;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>        }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        @Override<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        public CompoundIntegerDataset imultiply(final Object b) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                setDirty();<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                int is = bds.getElementsPerItem();<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                if (bds.getSize() == 1) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        final IndexIterator it = getIterator();<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final int bOffset = bds.getOffset();<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        if (useLong) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                if (is == 1) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                        while (it.hasNext()) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                        data[it.index + i] *= lb;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                } else if (is == isize) {<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        while (it.hasNext()) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                }<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                        }<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                } else {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                        } else {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                if (is == 1) {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                        while (it.hasNext()) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                        data[it.index + i] *= db;<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                } else if (is == isize) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                        while (it.hasNext()) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                        }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                } else {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                } else {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        it.setOutputDouble(!useLong);<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                        if (useLong) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                if (is == 1) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                final double lb = it.bLong;<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        data[it.aIndex + i] *= lb;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (is == isize) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                } else {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                        } else {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                if (is == 1) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                        while (it.hasNext()) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                final double db = it.bDouble;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                        data[it.aIndex + i] *= db;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                                }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                } else if (is == isize) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                        while (it.hasNext()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                }<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                } else {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        }<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                return this;<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span><a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        @Override<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>        public CompoundIntegerDataset idivide(final Object b) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                setDirty();<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                int is = bds.getElementsPerItem();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                if (bds.getSize() == 1) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                        final IndexIterator it = getIterator();<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        final int bOffset = bds.getOffset();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                        if (useLong) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                if (is == 1) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        if (lb == 0) { // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                                fill(0); // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        } else { // INT_USE<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        while (it.hasNext()) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                        data[it.index + i] /= lb;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                        }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        } // INT_USE<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                } else if (is == isize) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        while (it.hasNext()) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                try {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                } catch (ArithmeticException e) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        data[it.index + i] = 0;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                }<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                                }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                        }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                } else {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                        } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                if (is == 1) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        if (db == 0) { // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                fill(0); // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        } else { // INT_USE<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        while (it.hasNext()) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                                        data[it.index + i] /= db;<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                                }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                        }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                        } // INT_USE<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                } else if (is == isize) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                try {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                } catch (ArithmeticException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        data[it.index + i] = 0;<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                }<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                }<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        }<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                        }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                } else {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        it.setOutputDouble(!useLong);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        if (useLong) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                if (is == 1) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                        while (it.hasNext()) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                final long lb = it.bLong;<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                if (lb == 0) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                        }// INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                } else { // INT_USE<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                } // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                } else if (is == isize) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        while (it.hasNext()) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                try {<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                } catch (ArithmeticException e) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        data[it.aIndex + i] = 0;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                }<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                }<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                if (is == 1) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        while (it.hasNext()) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                final double db = it.bDouble;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                if (db == 0) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                        }// INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                } else { // INT_USE<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                        data[it.aIndex + i] /= db;<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                } // INT_USE<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                } else if (is == isize) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        while (it.hasNext()) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                try {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                } catch (ArithmeticException e) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                        data[it.aIndex + i] = 0;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                                }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        }<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                } else {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                }<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                        }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                return this;<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>        }<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span><a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        @Override<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        public CompoundIntegerDataset ifloor() {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return this;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span><a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        @Override<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        public CompoundIntegerDataset iremainder(final Object b) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                setDirty();<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                int is = bds.getElementsPerItem();<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                if (bds.getSize() == 1) {<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        final IndexIterator it = getIterator();<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        final int bOffset = bds.getOffset();<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                        if (useLong) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                if (is == 1) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        if (lb == 0) { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                fill(0); // INT_USE<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        } else { // INT_USE<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                        while (it.hasNext()) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                        data[it.index + i] %= lb;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                        }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        } // INT_USE<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                } else if (is == isize) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        while (it.hasNext()) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                try {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                } catch (ArithmeticException e) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        data[it.index + i] = 0;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                                }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                } else {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                }<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        } else {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                if (is == 1) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        if (db == 0) { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                                fill(0); // INT_USE<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        } else { // INT_USE<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                        while (it.hasNext()) {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                        data[it.index + i] %= db;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                }<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        }<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        } // INT_USE<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                } else if (is == isize) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                        while (it.hasNext()) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                try {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                } catch (ArithmeticException e) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        data[it.index + i] = 0;<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        }<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                } else {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                }<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                } else {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        it.setOutputDouble(!useLong);<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                        if (useLong) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                if (is == 1) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        while (it.hasNext()) {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                final long lb = it.bLong;<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                if (lb == 0) { // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                } else { // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                } // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                } else if (is == isize) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                try {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                } catch (ArithmeticException e) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                        data[it.aIndex + i] = 0;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                                }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                } else {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                }<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                        } else {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                if (is == 1) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        while (it.hasNext()) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                final double db = it.bDouble;<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                if (db == 0) { // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                } else { // INT_USE<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                        data[it.aIndex + i] %= db;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                                } // INT_USE<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        }<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                } else if (is == isize) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                        while (it.hasNext()) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                try {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                } catch (ArithmeticException e) {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                        data[it.aIndex + i] = 0;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                                }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                } else {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                return this;<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        }<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span><a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>        public CompoundIntegerDataset ipower(final Object b) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                setDirty();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                final int is = bds.getElementsPerItem();<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                if (bds.getSize() == 1) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        final int bOffset = bds.getOffset();<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                        final IndexIterator it = getIterator();<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        if (bds.isComplex()) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                if (vi == 0) {<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                        while (it.hasNext()) {<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                        } else { // INT_USE<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                                        data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                                        } // INT_USE<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                        }<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                } else {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                        while (it.hasNext()) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                                        } else { // INT_USE<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                                        data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                                        } // INT_USE<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                        }<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        } else if (is == 1) {<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                while (it.hasNext()) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                                } else { // INT_USE<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                                data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                                } // INT_USE<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                        }<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                        } else if (is == isize) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                while (it.hasNext()) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                } else { // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                data[it.index + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                } // INT_USE<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                        }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                        it.setOutputDouble(true);<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                        if (bds.isComplex()) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                while (it.hasNext()) {<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                        } else { // INT_USE<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                        } // INT_USE<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                                } else { // INT_USE<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                data[it.aIndex + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                } // INT_USE<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                        }<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                        } else {<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                while (it.hasNext()) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                        } else { // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                        } // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } else { // INT_USE<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                                data[it.aIndex + i] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                                                } // INT_USE<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                                        }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                                }<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                return this;<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span><a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>        @Override<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                it.setOutputDouble(true);<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                double sum = 0;<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                double comp = 0;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                final int bis = bds.getElementsPerItem();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span><a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                if (bis == 1) {<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        if (w == null) {<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                while (it.hasNext()) {<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        final double db = it.bDouble;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        double diff = it.aDouble - db;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        double err = diff * diff - comp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        double temp = sum + err;<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        comp = (temp - sum) - err;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        sum = temp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                err = diff * diff - comp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                temp = sum + err;<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                comp = (temp - sum) - err;<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                sum = temp;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        }<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                }<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                        } else {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                IndexIterator itw = w.getIterator();<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        final double db = it.bDouble;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double diff = it.aDouble - db;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        double err = diff * diff * dw - comp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        double temp = sum + err;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                        comp = (temp - sum) - err;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                        sum = temp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                err = diff * diff * dw - comp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                                temp = sum + err;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                                comp = (temp - sum) - err;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                                sum = temp;<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                        }<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                }<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        }<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                } else {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                        if (w == null) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                while (it.hasNext()) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        double err = diff * diff - comp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double temp = sum + err;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        comp = (temp - sum) - err;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        sum = temp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                err = diff * diff - comp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                temp = sum + err;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                comp = (temp - sum) - err;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                sum = temp;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                }<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                        } else {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                IndexIterator itw = w.getIterator();<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        double err = diff * diff * dw - comp;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double temp = sum + err;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        comp = (temp - sum) - err;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        sum = temp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                err = diff * diff * dw - comp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                                temp = sum + err;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                comp = (temp - sum) - err;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                sum = temp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                        }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                }<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                        }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                return sum;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>}<a name="line.2073"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundLongDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundLongDataset.html
new file mode 100644
index 0000000..5dfbb3a
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundLongDataset.html
@@ -0,0 +1,2145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for long values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundLongDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected long[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (long[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected long[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                long[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new long[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT64; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundLongDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundLongDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundLongDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundLongDataset(final CompoundLongDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundLongDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundLongDataset(final int itemSize, final long[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundLongDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundLongDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final long v = dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (!super.equals(obj)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return true;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                CompoundLongDataset other = (CompoundLongDataset) obj;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                IndexIterator iter = getIterator();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                IndexIterator oiter = other.getIterator();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return false;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return true;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int hashCode() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return super.hashCode();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public CompoundLongDataset clone() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return new CompoundLongDataset(this);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * elemental dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param obj<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset with contents given by input<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        static CompoundLongDataset createFromObject(final Object obj) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                LongDataset result = LongDataset.createFromObject(obj); // CLASS_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return (CompoundLongDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * sequences or arrays are padded with zeros.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         *<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param itemSize<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param obj<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return dataset with contents given by input<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static CompoundLongDataset createFromObject(final int itemSize, final Object obj) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                LongDataset result = LongDataset.createFromObject(obj); // CLASS_TYPE<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return new CompoundLongDataset(itemSize, result.getData(), null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param stop<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundLongDataset createRange(final int itemSize, final double stop) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return createRange(itemSize, 0., stop, 1.);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param start<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param stop<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param step<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        static CompoundLongDataset createRange(final int itemSize, final double start, final double stop,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final double step) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int size = calcSteps(start, stop, step);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                CompoundLongDataset result = new CompoundLongDataset(itemSize, new int[] { size });<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (int i = 0; i &lt; size; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        result.data[i * result.isize] = (long) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                return result;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param shape<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return a dataset filled with ones<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        static CompoundLongDataset ones(final int itemSize, final int... shape) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return new CompoundLongDataset(itemSize, shape).fill(1);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Create a compound dataset using last dimension of given dataset<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param shareData<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @return compound dataset<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public static CompoundLongDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (a.getElementsPerItem() != 1) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        logger.error("Need a single-element dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                if (a.getDType() != Dataset.INT64) { // DATA_TYPE<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        logger.error("Dataset type must be long"); // PRIM_TYPE<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        throw new IllegalArgumentException("Dataset type must be long"); // PRIM_TYPE<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                final int[] shape = a.getShapeRef();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                if (shape == null) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new CompoundLongDataset(0);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>                final int rank = shape.length - 1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                CompoundLongDataset result = new CompoundLongDataset(is);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                result.setName(a.getName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                result.setData();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return result;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public LongDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                LongDataset result = new LongDataset(); // CLASS_TYPE<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int is = getElementsPerItem();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                if (is != 1)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        nshape[rank-1] = is;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.shape = nshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.odata = shareData ? data : data.clone();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                result.setName(name);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                result.setData();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return result;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public CompoundLongDataset fill(final Object obj) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                setDirty();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                long[] vr = DTypeUtils.toLongArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                IndexIterator iter = getIterator();<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (iter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * This is a typed version of {@link #getBuffer()}<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return data buffer as linear array<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public long[] getData() { // PRIM_TYPE<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return data;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        protected int getBufferLength() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (data == null)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        return 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data.length;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public CompoundLongDataset getView(boolean deepCopyMetadata) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                CompoundLongDataset view = new CompoundLongDataset(isize);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                view.setData();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return view;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>        /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param index<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            absolute index<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return values<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public long[] getAbs(final int index) { // PRIM_TYPE<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                long[] result = new long[isize]; // PRIM_TYPE<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        result[i] = data[index + i];<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return result;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param index<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         *            absolute index<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param values<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public void getAbs(final int index, final long[] values) { // PRIM_TYPE<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        values[i] = data[index + i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>        @Override<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[index] != 0;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public double getElementDoubleAbs(final int index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return data[index];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public long getElementLongAbs(final int index) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return data[index]; // OMIT_TOLONG_INT<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                setDirty();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                long[] dsrc = (long[]) src; // PRIM_TYPE<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        data[dindex + i] = dsrc[sindex + i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param index<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            absolute index<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param val<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         *            new values<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public void setAbs(final int index, final long[] val) { // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                setDirty();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        data[index + i] = val[i];<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Set element value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param index<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            absolute index<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param val<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *            new value<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setAbs(final int index, final long val) { // PRIM_TYPE<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                setDirty();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                data[index] = val;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Object getObject() {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return getLongArray(); // PRIM_TYPE<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Object getObject(final int i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return getLongArray(i); // PRIM_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public Object getObject(final int i, final int j) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return getLongArray(i, j); // PRIM_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Object getObject(final int... pos) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getLongArray(pos); // PRIM_TYPE<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public byte[] getByteArray() {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                byte[] result = new byte[isize];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                int index = getFirst1DIndex();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return result;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte[] getByteArray(final int i) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                byte[] result = new byte[isize];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                int index = get1DIndex(i);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return result;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                byte[] result = new byte[isize];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                int index = get1DIndex(i, j);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return result;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public byte[] getByteArray(final int... pos) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                byte[] result = new byte[isize];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                int index = get1DIndex(pos);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return result;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public short[] getShortArray() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                short[] result = new short[isize];<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int index = getFirst1DIndex();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return result;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public short[] getShortArray(final int i) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                short[] result = new short[isize];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                int index = get1DIndex(i);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return result;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>        @Override<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public short[] getShortArray(final int i, final int j) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                short[] result = new short[isize];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                int index = get1DIndex(i, j);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                return result;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public short[] getShortArray(final int... pos) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                short[] result = new short[isize];<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int index = get1DIndex(pos);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        result[k] = (short) data[index + k]; // OMIT_UPCAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return result;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public int[] getIntArray() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int[] result = new int[isize];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                int index = getFirst1DIndex();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                return result;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public int[] getIntArray(final int i) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] result = new int[isize];<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int index = get1DIndex(i);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                return result;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>        @Override<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        public int[] getIntArray(final int i, final int j) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] result = new int[isize];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int index = get1DIndex(i, j);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return result;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>        @Override<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        public int[] getIntArray(final int... pos) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                int[] result = new int[isize];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int index = get1DIndex(pos);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        result[k] = (int) data[index + k]; // OMIT_UPCAST<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return result;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        public long[] getLongArray() {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                long[] result = new long[isize];<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int index = getFirst1DIndex();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return result;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public long[] getLongArray(final int i) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                long[] result = new long[isize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int index = get1DIndex(i);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return result;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Override<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public long[] getLongArray(final int i, final int j) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                long[] result = new long[isize];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                int index = get1DIndex(i, j);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return result;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public long[] getLongArray(final int... pos) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                long[] result = new long[isize];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                int index = get1DIndex(pos);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return result;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public float[] getFloatArray() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                float[] result = new float[isize];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int index = getFirst1DIndex();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return result;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public float[] getFloatArray(final int i) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                float[] result = new float[isize];<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                int index = get1DIndex(i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return result;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                float[] result = new float[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int index = get1DIndex(i, j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return result;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public float[] getFloatArray(final int... pos) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                float[] result = new float[isize];<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                int index = get1DIndex(pos);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return result;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public double[] getDoubleArray() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                double[] result = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                int index = getFirst1DIndex();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                return result;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>        @Override<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        public double[] getDoubleArray(final int i) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                double[] result = new double[isize];<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                int index = get1DIndex(i);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return result;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                double[] result = new double[isize];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                int index = get1DIndex(i, j);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return result;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public double[] getDoubleArray(final int... pos) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double[] result = new double[isize];<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                int index = get1DIndex(pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return result;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        @Override<a name="line.772"></a>
+<span class="sourceLineNo">773</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        darray[i] = data[index + i];<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>        @Override<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        public String getString() {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getStringAbs(getFirst1DIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        @Override<a name="line.784"></a>
+<span class="sourceLineNo">785</span>        public String getString(final int i) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                return getStringAbs(get1DIndex(i));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>        @Override<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public String getString(final int i, final int j) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return getStringAbs(get1DIndex(i, j));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public String getString(final int... pos) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return getStringAbs(get1DIndex(pos));<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @Override<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        protected double getFirstValue() {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                return data[getFirst1DIndex()];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>        @Override<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        protected double getFirstValue(int i) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return data[get1DIndex(i)];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        protected double getFirstValue(int i, int j) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return data[get1DIndex(i, j)];<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Override<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        protected double getFirstValue(final int... pos) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                return data[get1DIndex(pos)];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Override<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public Object getObjectAbs(final int index) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                long[] result = new long[isize]; // PRIM_TYPE<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result[i] = data[index + i];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return result;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getStringAbs(final int index) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                StringBuilder s = new StringBuilder();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                s.append('(');<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        stringFormat.format(data[index]));<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        s.append(' ');<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                stringFormat.format(data[index + i]));<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                s.append(')');<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return s.toString();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                long[] oa = DTypeUtils.toLongArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setAbs(index, oa);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void set(final Object obj) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setItem(DTypeUtils.toLongArray(obj, isize)); // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        @Override<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        public void set(final Object obj, final int i) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                setItem(DTypeUtils.toLongArray(obj, isize), i); // CLASS_TYPE<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj, final int i, final int j) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                setItem(DTypeUtils.toLongArray(obj, isize), i, j); // CLASS_TYPE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        @Override<a name="line.864"></a>
+<span class="sourceLineNo">865</span>        public void set(final Object obj, int... pos) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        pos = new int[shape.length];<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                setItem(DTypeUtils.toLongArray(obj, isize), pos); // CLASS_TYPE<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Set values at first position. The dataset must not be null<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         *<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param d<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public void setItem(final long[] d) { // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (d.length &gt; isize) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(getFirst1DIndex(), d);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Set values at given position. The dataset must be 1D<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         *<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param d<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param i<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void setItem(final long[] d, final int i) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (d.length &gt; isize) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                setAbs(get1DIndex(i), d);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * Set values at given position. The dataset must be 1D<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         *<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param d<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param i<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param j<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         */<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public void setItem(final long[] d, final int i, final int j) { // PRIM_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (d.length &gt; isize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                setAbs(get1DIndex(i, j), d);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        /**<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * Set values at given position<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         *<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param d<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param pos<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public void setItem(final long[] d, final int... pos) { // PRIM_TYPE<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (d.length &gt; isize) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setAbs(get1DIndex(pos), d);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                for (int i = 0; i &lt; isize; i++)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        data[index + i] = (long) d[i]; // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public void resize(int... newShape) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setDirty();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                IndexIterator iter = getIterator();<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                long[] ndata; // PRIM_TYPE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                try {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        ndata = createArray(nsize);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                } catch (Throwable t) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        throw new IllegalArgumentException(t);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                int i = 0;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                ndata[i++] = data[iter.index + j];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                odata = data = ndata;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                size = nsize;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                shape = newShape;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                stride = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                offset = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                base = null;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public CompoundLongDataset getSlice(final SliceIterator siter) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                CompoundLongDataset result = new CompoundLongDataset(isize, siter.getShape());<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                long[] rdata = result.data; // PRIM_TYPE<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                IndexIterator riter = result.getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return result;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public LongDataset getElementsView(int element) { // CLASS_TYPE<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (element &lt; 0)<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        element += isize;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                LongDataset view = new LongDataset(shape); // CLASS_TYPE<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                copyToView(this, view, true, true);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                view.setData();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (view.stride == null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        int[] offset = new int[1];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        view.stride = createStrides(this, offset);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        view.offset = offset[0] + element;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        view.base = base == null ? this : base;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset += element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return view;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        }<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public LongDataset getElements(int element) { // CLASS_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final LongDataset elements = new LongDataset(shape); // CLASS_TYPE<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                copyElements(elements, element);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return elements;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public void copyElements(Dataset destination, int element) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                if (element &lt; 0)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        element += isize;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                final IndexIterator it = getIterator(element);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                final long[] elements = ((LongDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                destination.setDirty();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int n = 0;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                while (it.hasNext()) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        elements[n] = data[it.index];<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        n++;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public void setElements(Dataset source, int element) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                setDirty();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (element &lt; 0)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        element += isize;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                final IndexIterator it = getIterator(element);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                final long[] elements = ((LongDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                int n = 0;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        data[it.index] = elements[n];<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        n++;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        @Override<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                IndexIterator riter = result.getIterator();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                result.setDirty();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                long[] rdata = ((CompoundLongDataset) result).data; // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                rdata[riter.index + i] = data[iter.index + i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public CompoundLongDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (o instanceof Dataset) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        Dataset ds = (Dataset) o;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (length != ds.getSize()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                throw new IllegalArgumentException(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        IndexIterator iter = ds.getIterator();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                data[biter.index + i] = ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        data[biter.index] = ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                data[biter.index + i] = 0;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                } else {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        try {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                while (biter.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                                data[biter.index + i] = vr[i];<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        } catch (IllegalArgumentException e) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return this;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        @Override<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public CompoundLongDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                setDirty();<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (o instanceof Dataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        Dataset ds = (Dataset) o;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException(<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span><a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                double[] temp = new double[isize];<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                data[iter.index + i] = ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        data[iter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                data[iter.index + i] = 0;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                } else {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        try {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        setAbs(iter.index, vr);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        } catch (IllegalArgumentException e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                return this;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        @Override<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public CompoundLongDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                setDirty();<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                final int[] pos = iter.getPos();<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                if (o instanceof Dataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        Dataset ds = (Dataset) o;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                throw new IllegalArgumentException(<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                double[] temp = new double[isize];<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        } else {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        int n = get1DIndex(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        data[n] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[n + i] = 0;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        try {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (iter.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        } catch (IllegalArgumentException e) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                return this;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        @Override<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        CompoundLongDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                setDirty();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                final int is = view.getElementsPerItem();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                if (is &gt; 1) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        final long bv = it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        data[it.aIndex] = bv;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex + j] = bv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex + j] = d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                }<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                return this;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        @Override<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        public CompoundLongDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                setDirty();<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                if (o instanceof IDataset) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        final IDataset ds = (IDataset) o;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final int[] oshape = ds.getShape();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                throw new IllegalArgumentException(String.format(<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                                Arrays.toString(siter.getShape())));<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (ds instanceof Dataset) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final Dataset ads = (Dataset) ds;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                        data[siter.index + i] = ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                                data[siter.index] = ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                        data[siter.index + i] = 0;<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                final int[] pos = oiter.getPos();<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                data[siter.index] = ds.getLong(pos); // PRIM_TYPE<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                        data[siter.index + i] = 0;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                final long[] val = DTypeUtils.toLongArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        data[siter.index + i] = val[i];<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                        try {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                final long[] vr = DTypeUtils.toLongArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                while (siter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                data[siter.index + i] = vr[i];<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } catch (IllegalArgumentException e) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                return this;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                long[] ddata = (long[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        throw new IllegalArgumentException(String.format(<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        dest.getElementsPerItem(), isize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                }<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span><a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                dest.setDirty();<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        @Override<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                setDirty();<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                long[] sdata = (long[]) src; // PRIM_TYPE<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                data[siter.index + j] = sdata[isize * i + j];<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span><a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        @Override<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public boolean containsNans() {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                return false;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        @Override<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        public boolean containsInfs() {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                return false;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        }<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span><a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        @Override<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        public boolean containsInvalidNumbers() {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                return false;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>        @Override<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        public CompoundLongDataset iadd(final Object b) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                setDirty();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                int is = bds.getElementsPerItem();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                if (bds.getSize() == 1) {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        final IndexIterator it = getIterator();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                        final int bOffset = bds.getOffset();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (is == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                if (useLong) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        while (it.hasNext()) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                        data[it.index + i] += lb;<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                } else {<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        while (it.hasNext()) {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                                        data[it.index + i] += db;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                        } else if (is == isize) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                if (useLong) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        while (it.hasNext()) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                } else {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                        while (it.hasNext()) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                }<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                        }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                        } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        }<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                } else {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        it.setOutputDouble(!useLong);<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (is == 1) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (useLong) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                final long lb = it.bLong;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                                data[it.aIndex] += lb;<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.aIndex + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        while (it.hasNext()) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                final double db = it.bDouble;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                data[it.aIndex] += db;<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        data[it.aIndex + i] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                }<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        } else if (is == isize) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                if (useLong) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                        while (it.hasNext()) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                data[it.aIndex] += it.bLong;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                } else {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                        while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                        } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                return this;<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        @Override<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        public CompoundLongDataset isubtract(final Object b) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                setDirty();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                int is = bds.getElementsPerItem();<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                if (bds.getSize() == 1) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                        final IndexIterator it = getIterator();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                        final int bOffset = bds.getOffset();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        if (is == 1) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                if (useLong) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        while (it.hasNext()) {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                        data[it.index + i] -= lb;<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                        data[it.index + i] -= db;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                }<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                        } else if (is == isize) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                if (useLong) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        while (it.hasNext()) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                        }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                } else {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                        while (it.hasNext()) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                        }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                        } else {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                        }<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                } else {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        it.setOutputDouble(!useLong);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        if (is == 1) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                if (useLong) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                        while (it.hasNext()) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                final long lb = it.bLong;<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                data[it.aIndex] += lb;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                final double db = it.bDouble;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                data[it.aIndex] += db;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                        data[it.aIndex + i] -= db;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                        }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        } else if (is == isize) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                if (useLong) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                        while (it.hasNext()) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                data[it.aIndex] += it.bLong;<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                } else {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                        while (it.hasNext()) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                        } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                return this;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>        }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        @Override<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        public CompoundLongDataset imultiply(final Object b) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                setDirty();<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                int is = bds.getElementsPerItem();<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                if (bds.getSize() == 1) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        final IndexIterator it = getIterator();<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final int bOffset = bds.getOffset();<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        if (useLong) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                if (is == 1) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                        while (it.hasNext()) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                        data[it.index + i] *= lb;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                } else if (is == isize) {<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        while (it.hasNext()) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                }<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                        }<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                } else {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                        } else {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                if (is == 1) {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                        while (it.hasNext()) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                        data[it.index + i] *= db;<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                } else if (is == isize) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                        while (it.hasNext()) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                        }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                } else {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                } else {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        it.setOutputDouble(!useLong);<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                        if (useLong) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                if (is == 1) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                final double lb = it.bLong;<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        data[it.aIndex + i] *= lb;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (is == isize) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                } else {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                        } else {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                if (is == 1) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                        while (it.hasNext()) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                final double db = it.bDouble;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                        data[it.aIndex + i] *= db;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                                }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                } else if (is == isize) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                        while (it.hasNext()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                }<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                } else {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        }<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                return this;<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span><a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        @Override<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>        public CompoundLongDataset idivide(final Object b) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                setDirty();<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                int is = bds.getElementsPerItem();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                if (bds.getSize() == 1) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                        final IndexIterator it = getIterator();<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        final int bOffset = bds.getOffset();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                        if (useLong) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                if (is == 1) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        if (lb == 0) { // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                                fill(0); // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        } else { // INT_USE<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        while (it.hasNext()) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                        data[it.index + i] /= lb;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                        }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        } // INT_USE<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                } else if (is == isize) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        while (it.hasNext()) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                try {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                } catch (ArithmeticException e) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        data[it.index + i] = 0;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                }<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                                }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                        }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                } else {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                        } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                if (is == 1) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        if (db == 0) { // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                fill(0); // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        } else { // INT_USE<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        while (it.hasNext()) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                                        data[it.index + i] /= db;<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                                }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                        }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                        } // INT_USE<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                } else if (is == isize) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                try {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                } catch (ArithmeticException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        data[it.index + i] = 0;<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                }<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                }<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        }<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                        }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                } else {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        it.setOutputDouble(!useLong);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        if (useLong) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                if (is == 1) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                        while (it.hasNext()) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                final long lb = it.bLong;<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                if (lb == 0) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                        }// INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                } else { // INT_USE<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                } // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                } else if (is == isize) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        while (it.hasNext()) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                try {<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                } catch (ArithmeticException e) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        data[it.aIndex + i] = 0;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                }<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                }<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                if (is == 1) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        while (it.hasNext()) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                final double db = it.bDouble;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                if (db == 0) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                        }// INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                } else { // INT_USE<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                        data[it.aIndex + i] /= db;<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                } // INT_USE<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                } else if (is == isize) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        while (it.hasNext()) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                try {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                } catch (ArithmeticException e) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                        data[it.aIndex + i] = 0;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                                }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        }<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                } else {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                }<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                        }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                return this;<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>        }<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span><a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        @Override<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        public CompoundLongDataset ifloor() {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return this;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span><a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        @Override<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        public CompoundLongDataset iremainder(final Object b) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                setDirty();<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                int is = bds.getElementsPerItem();<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                if (bds.getSize() == 1) {<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        final IndexIterator it = getIterator();<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        final int bOffset = bds.getOffset();<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                        if (useLong) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                if (is == 1) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        if (lb == 0) { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                fill(0); // INT_USE<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        } else { // INT_USE<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                        while (it.hasNext()) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                        data[it.index + i] %= lb;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                        }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        } // INT_USE<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                } else if (is == isize) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        while (it.hasNext()) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                try {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                } catch (ArithmeticException e) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        data[it.index + i] = 0;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                                }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                } else {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                }<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        } else {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                if (is == 1) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        if (db == 0) { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                                fill(0); // INT_USE<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        } else { // INT_USE<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                        while (it.hasNext()) {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                        data[it.index + i] %= db;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                }<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        }<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        } // INT_USE<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                } else if (is == isize) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                        while (it.hasNext()) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                try {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                } catch (ArithmeticException e) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        data[it.index + i] = 0;<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        }<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                } else {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                }<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                } else {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        it.setOutputDouble(!useLong);<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                        if (useLong) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                if (is == 1) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        while (it.hasNext()) {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                final long lb = it.bLong;<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                if (lb == 0) { // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                } else { // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                } // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                } else if (is == isize) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                try {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                } catch (ArithmeticException e) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                        data[it.aIndex + i] = 0;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                                }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                } else {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                }<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                        } else {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                if (is == 1) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        while (it.hasNext()) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                final double db = it.bDouble;<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                if (db == 0) { // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                } else { // INT_USE<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                        data[it.aIndex + i] %= db;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                                } // INT_USE<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        }<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                } else if (is == isize) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                        while (it.hasNext()) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                try {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                } catch (ArithmeticException e) {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                        data[it.aIndex + i] = 0;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                                }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                } else {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                return this;<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        }<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span><a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>        public CompoundLongDataset ipower(final Object b) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                setDirty();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                final int is = bds.getElementsPerItem();<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                if (bds.getSize() == 1) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        final int bOffset = bds.getOffset();<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                        final IndexIterator it = getIterator();<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        if (bds.isComplex()) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                if (vi == 0) {<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                        while (it.hasNext()) {<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                        } else { // INT_USE<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                                        data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                                        } // INT_USE<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                        }<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                } else {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                        while (it.hasNext()) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                                        } else { // INT_USE<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                                        data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                                        } // INT_USE<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                        }<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        } else if (is == 1) {<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                while (it.hasNext()) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                                } else { // INT_USE<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                                data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                                } // INT_USE<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                        }<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                        } else if (is == isize) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                while (it.hasNext()) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                } else { // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                data[it.index + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                } // INT_USE<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                        }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                        it.setOutputDouble(true);<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                        if (bds.isComplex()) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                while (it.hasNext()) {<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                        } else { // INT_USE<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                        } // INT_USE<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                                } else { // INT_USE<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                data[it.aIndex + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                } // INT_USE<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                        }<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                        } else {<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                while (it.hasNext()) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                        } else { // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                        } // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } else { // INT_USE<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                                data[it.aIndex + i] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                                                } // INT_USE<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                                        }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                                }<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                return this;<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span><a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>        @Override<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                it.setOutputDouble(true);<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                double sum = 0;<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                double comp = 0;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                final int bis = bds.getElementsPerItem();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span><a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                if (bis == 1) {<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        if (w == null) {<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                while (it.hasNext()) {<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        final double db = it.bDouble;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        double diff = it.aDouble - db;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        double err = diff * diff - comp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        double temp = sum + err;<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        comp = (temp - sum) - err;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        sum = temp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                err = diff * diff - comp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                temp = sum + err;<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                comp = (temp - sum) - err;<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                sum = temp;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        }<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                }<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                        } else {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                IndexIterator itw = w.getIterator();<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        final double db = it.bDouble;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double diff = it.aDouble - db;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        double err = diff * diff * dw - comp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        double temp = sum + err;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                        comp = (temp - sum) - err;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                        sum = temp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                err = diff * diff * dw - comp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                                temp = sum + err;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                                comp = (temp - sum) - err;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                                sum = temp;<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                        }<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                }<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        }<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                } else {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                        if (w == null) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                while (it.hasNext()) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        double err = diff * diff - comp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double temp = sum + err;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        comp = (temp - sum) - err;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        sum = temp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                err = diff * diff - comp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                temp = sum + err;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                comp = (temp - sum) - err;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                sum = temp;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                }<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                        } else {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                IndexIterator itw = w.getIterator();<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        double err = diff * diff * dw - comp;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double temp = sum + err;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        comp = (temp - sum) - err;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        sum = temp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                err = diff * diff * dw - comp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                                temp = sum + err;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                comp = (temp - sum) - err;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                sum = temp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                        }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                }<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                        }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                return sum;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>}<a name="line.2073"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundShortDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundShortDataset.html
new file mode 100644
index 0000000..b426d5d
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/CompoundShortDataset.html
@@ -0,0 +1,2145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from CompoundDoubleDataset.java by fromcpddouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.complex.Complex;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Extend compound dataset for short values // PRIM_TYPE<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CompoundShortDataset extends AbstractCompoundDataset {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        // pin UID to base class<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        protected short[] data; // subclass alias // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        protected void setData() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                data = (short[]) odata; // PRIM_TYPE<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        protected short[] createArray(final int size) { // PRIM_TYPE<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                short[] array = null; // PRIM_TYPE<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>                try {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        array = new short[isize * size]; // PRIM_TYPE<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } catch (OutOfMemoryError e) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                return array;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public int getDType() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return Dataset.ARRAYINT16; // DATA_TYPE<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a null dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        CompoundShortDataset() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param itemSize<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        CompoundShortDataset(final int itemSize) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                isize = itemSize;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Create a zero-filled dataset of given item size and shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param itemSize<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        CompoundShortDataset(final int itemSize, final int[] shape) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                isize = itemSize;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (shape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        size = ShapeUtils.calcSize(shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        this.shape = shape.clone();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        try {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                odata = data = createArray(size);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } catch (Throwable t) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException(t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Copy a dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        CompoundShortDataset(final CompoundShortDataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                isize = dataset.isize;<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                copyToView(dataset, this, true, true);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                try {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        if (dataset.stride == null) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                if (dataset.data != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        odata = data = dataset.data.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        } else {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                offset = 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                stride = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                base = null;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                odata = data = createArray(size);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                IndexIterator iter = dataset.getIterator();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                for (int j = 0; iter.hasNext();) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                                data[j++] = dataset.data[iter.index + i];<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } catch (Throwable t) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        throw new IllegalArgumentException(t);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * Create a dataset using given dataset<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param dataset<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        CompoundShortDataset(final CompoundDataset dataset) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                copyToView(dataset, this, true, false);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                offset = 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                stride = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                base = null;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                isize = dataset.getElementsPerItem();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        odata = data = createArray(size);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (Throwable t) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        throw new IllegalArgumentException(t);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>                IndexIterator iter = dataset.getIterator();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int j = 0; iter.hasNext();) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                data[j++] = (short) dataset.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        /**<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Create a dataset using given data (elements are grouped together)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @param itemSize<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param data<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param shape<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         *            (can be null to create 1D dataset)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        CompoundShortDataset(final int itemSize, final short[] data, int... shape) { // PRIM_TYPE<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                isize = itemSize;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (data != null) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (shape == null || (shape.length == 0 &amp;&amp; data.length &gt; isize)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                shape = new int[] { data.length / isize };<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        size = ShapeUtils.calcSize(shape);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        if (size * isize != data.length) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                                Arrays.toString(shape), data.length / isize));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        this.shape = size == 0 ? null : shape.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        odata = this.data = data;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * Create a dataset using given datasets<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param datasets<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         */<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        CompoundShortDataset(final Dataset... datasets) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                if (datasets.length &lt; 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        throw new IllegalArgumentException("Array of datasets must have length greater than zero");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                for (int i = 1; i &lt; datasets.length; i++) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        datasets[0].checkCompatibility(datasets[i]);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                isize = datasets.length;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                size = ShapeUtils.calcSize(datasets[0].getShapeRef());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                shape = datasets[0].getShape();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        odata = data = createArray(size);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                } catch (Throwable t) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        throw new IllegalArgumentException(t);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                IndexIterator[] iters = new IndexIterator[isize];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                for (int i = 0; i &lt; datasets.length; i++) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        iters[i] = datasets[i].getIterator();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>                for (int j = 0; iters[0].hasNext();) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        data[j++] = (short) datasets[0].getElementLongAbs(iters[0].index); // GET_ELEMENT_WITH_CAST<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        for (int i = 1; i &lt; datasets.length; i++) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                iters[i].hasNext();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                data[j++] = (short) datasets[i].getElementLongAbs(iters[i].index); // GET_ELEMENT_WITH_CAST<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Cast a dataset to this compound type. If repeat is set, the first element of each item in the given dataset is<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * repeated across all elements of an item. Otherwise, each item comprises a truncated or zero-padded copy of<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * elements from the given dataset.<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param itemSize<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param repeat<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         *            repeat first element<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @param dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        CompoundShortDataset(final int itemSize, final boolean repeat, final Dataset dataset) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                isize = itemSize;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                size = dataset.getSize();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                shape = dataset.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                name = new String(dataset.getName());<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        odata = data = createArray(size);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                } catch (Throwable t) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        throw new IllegalArgumentException(t);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                final int os = dataset.getElementsPerItem();<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                IndexIterator iter = dataset.getIterator();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (repeat) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        int i = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        while (iter.hasNext()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                final short v = (short) dataset.getElementLongAbs(iter.index); // PRIM_TYPE // GET_ELEMENT_WITH_CAST<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                        data[i++] = v;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } else {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        final int kmax = Math.min(isize, os);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        int i = 0;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        while (iter.hasNext()) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                for (int k = 0; k &lt; kmax; k++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        data[i + k] = (short) dataset.getElementLongAbs(iter.index + k); // GET_ELEMENT_WITH_CAST<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                i += isize;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean equals(Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (!super.equals(obj)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        return false;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        return true;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                CompoundShortDataset other = (CompoundShortDataset) obj;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                IndexIterator iter = getIterator();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                IndexIterator oiter = other.getIterator();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                if (data[iter.index+j] != other.data[oiter.index+j])<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        return false;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return true;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int hashCode() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return super.hashCode();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public CompoundShortDataset clone() {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return new CompoundShortDataset(this);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * elemental dataset<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param obj<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @return dataset with contents given by input<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        static CompoundShortDataset createFromObject(final Object obj) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                ShortDataset result = ShortDataset.createFromObject(obj); // CLASS_TYPE<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return (CompoundShortDataset) DatasetUtils.createCompoundDatasetFromLastAxis(result, true);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>        /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         * Create a 1D dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * sequences or arrays are padded with zeros.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         *<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @param itemSize<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * @param obj<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         * @return dataset with contents given by input<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         */<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public static CompoundShortDataset createFromObject(final int itemSize, final Object obj) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                ShortDataset result = ShortDataset.createFromObject(obj); // CLASS_TYPE<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return new CompoundShortDataset(itemSize, result.getData(), null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param stop<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        static CompoundShortDataset createRange(final int itemSize, final double stop) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return createRange(itemSize, 0., stop, 1.);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param start<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param stop<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * @param step<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        static CompoundShortDataset createRange(final int itemSize, final double start, final double stop,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        final double step) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                int size = calcSteps(start, stop, step);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                CompoundShortDataset result = new CompoundShortDataset(itemSize, new int[] { size });<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                for (int i = 0; i &lt; size; i++) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        result.data[i * result.isize] = (short) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                return result;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @param shape<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return a dataset filled with ones<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        static CompoundShortDataset ones(final int itemSize, final int... shape) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return new CompoundShortDataset(itemSize, shape).fill(1);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Create a compound dataset using last dimension of given dataset<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param a<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @param shareData<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         * @return compound dataset<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         */<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public static CompoundShortDataset createCompoundDatasetWithLastDimension(final Dataset a, final boolean shareData) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (a.getElementsPerItem() != 1) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        logger.error("Need a single-element dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        throw new IllegalArgumentException("Need a single-element dataset");<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                if (a.getDType() != Dataset.INT16) { // DATA_TYPE<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        logger.error("Dataset type must be short"); // PRIM_TYPE<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        throw new IllegalArgumentException("Dataset type must be short"); // PRIM_TYPE<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>                final int[] shape = a.getShapeRef();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                if (shape == null) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        return new CompoundShortDataset(0);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>                final int rank = shape.length - 1;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int is = rank &lt; 0 ? 1 : shape[rank];<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                CompoundShortDataset result = new CompoundShortDataset(is);<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                result.shape = rank &gt; 0 ? Arrays.copyOf(shape, rank) : (rank &lt; 0 ? new int[] {} : new int[] {1});<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                result.odata = shareData ? a.getBuffer() : a.clone().getBuffer();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                result.setName(a.getName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                result.setData();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return result;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public ShortDataset asNonCompoundDataset(final boolean shareData) { // CLASS_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                ShortDataset result = new ShortDataset(); // CLASS_TYPE<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                final int is = getElementsPerItem();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                final int rank = is == 1 ? shape.length : shape.length + 1;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                final int[] nshape = Arrays.copyOf(shape, rank);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                if (is != 1)<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        nshape[rank-1] = is;<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                result.shape = nshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                result.size = ShapeUtils.calcSize(nshape);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                result.odata = shareData ? data : data.clone();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                result.setName(name);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                result.setData();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return result;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public CompoundShortDataset fill(final Object obj) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                setDirty();<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                short[] vr = DTypeUtils.toShortArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                IndexIterator iter = getIterator();<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                while (iter.hasNext()) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                data[iter.index + i] = vr[i]; // PRIM_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return this;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * This is a typed version of {@link #getBuffer()}<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return data buffer as linear array<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public short[] getData() { // PRIM_TYPE<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return data;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        protected int getBufferLength() {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                if (data == null)<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        return 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return data.length;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public CompoundShortDataset getView(boolean deepCopyMetadata) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                CompoundShortDataset view = new CompoundShortDataset(isize);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                view.setData();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                return view;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>        /**<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.429"></a>
+<span class="sourceLineNo">430</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         *<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @param index<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         *            absolute index<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return values<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public short[] getAbs(final int index) { // PRIM_TYPE<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                short[] result = new short[isize]; // PRIM_TYPE<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        result[i] = data[index + i];<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return result;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Get values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param index<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         *            absolute index<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param values<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         */<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public void getAbs(final int index, final short[] values) { // PRIM_TYPE<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        values[i] = data[index + i];<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span>        @Override<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[index] != 0;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public double getElementDoubleAbs(final int index) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return data[index];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        @Override<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        public long getElementLongAbs(final int index) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                return data[index]; // OMIT_TOLONG_INT<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        }<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>        @Override<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                setDirty();<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                short[] dsrc = (short[]) src; // PRIM_TYPE<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        data[dindex + i] = dsrc[sindex + i];<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>        /**<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * Set values at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.484"></a>
+<span class="sourceLineNo">485</span>         *<a name="line.485"></a>
+<span class="sourceLineNo">486</span>         * @param index<a name="line.486"></a>
+<span class="sourceLineNo">487</span>         *            absolute index<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * @param val<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         *            new values<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         */<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public void setAbs(final int index, final short[] val) { // PRIM_TYPE<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                setDirty();<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        data[index + i] = val[i];<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                }<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Set element value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         *<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @param index<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         *            absolute index<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @param val<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *            new value<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public void setAbs(final int index, final short val) { // PRIM_TYPE<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                setDirty();<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                data[index] = val;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        @Override<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Object getObject() {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return getShortArray(); // PRIM_TYPE<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public Object getObject(final int i) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                return getShortArray(i); // PRIM_TYPE<a name="line.519"></a>
+<span class="sourceLineNo">520</span>        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>        @Override<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public Object getObject(final int i, final int j) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                return getShortArray(i, j); // PRIM_TYPE<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Object getObject(final int... pos) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return getShortArray(pos); // PRIM_TYPE<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        @Override<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public byte[] getByteArray() {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                byte[] result = new byte[isize];<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                int index = getFirst1DIndex();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                return result;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        @Override<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public byte[] getByteArray(final int i) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                byte[] result = new byte[isize];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                int index = get1DIndex(i);<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                return result;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>        @Override<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        public byte[] getByteArray(final int i, final int j) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                byte[] result = new byte[isize];<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                int index = get1DIndex(i, j);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                return result;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>        @Override<a name="line.562"></a>
+<span class="sourceLineNo">563</span>        public byte[] getByteArray(final int... pos) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                byte[] result = new byte[isize];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                int index = get1DIndex(pos);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        result[k] = (byte) data[index + k]; // OMIT_UPCAST<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                return result;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>        }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>        @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        public short[] getShortArray() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                short[] result = new short[isize];<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                int index = getFirst1DIndex();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return result;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        public short[] getShortArray(final int i) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                short[] result = new short[isize];<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                int index = get1DIndex(i);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                return result;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>        @Override<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public short[] getShortArray(final int i, final int j) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                short[] result = new short[isize];<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                int index = get1DIndex(i, j);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                return result;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>        @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public short[] getShortArray(final int... pos) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                short[] result = new short[isize];<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int index = get1DIndex(pos);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                return result;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public int[] getIntArray() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int[] result = new int[isize];<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                int index = getFirst1DIndex();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                return result;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public int[] getIntArray(final int i) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                int[] result = new int[isize];<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                int index = get1DIndex(i);<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                return result;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span><a name="line.631"></a>
+<span class="sourceLineNo">632</span>        @Override<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        public int[] getIntArray(final int i, final int j) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] result = new int[isize];<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                int index = get1DIndex(i, j);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                return result;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>        @Override<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        public int[] getIntArray(final int... pos) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                int[] result = new int[isize];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int index = get1DIndex(pos);<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return result;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        public long[] getLongArray() {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                long[] result = new long[isize];<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int index = getFirst1DIndex();<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                return result;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>        }<a name="line.660"></a>
+<span class="sourceLineNo">661</span><a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Override<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public long[] getLongArray(final int i) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                long[] result = new long[isize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int index = get1DIndex(i);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                return result;<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>        @Override<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        public long[] getLongArray(final int i, final int j) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                long[] result = new long[isize];<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                int index = get1DIndex(i, j);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return result;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public long[] getLongArray(final int... pos) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                long[] result = new long[isize];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                int index = get1DIndex(pos);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        result[k] = data[index + k]; // OMIT_UPCAST<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                return result;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>        @Override<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        public float[] getFloatArray() {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                float[] result = new float[isize];<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                int index = getFirst1DIndex();<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                return result;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>        @Override<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        public float[] getFloatArray(final int i) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                float[] result = new float[isize];<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                int index = get1DIndex(i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return result;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        @Override<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float[] getFloatArray(final int i, final int j) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                float[] result = new float[isize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                int index = get1DIndex(i, j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                return result;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        @Override<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        public float[] getFloatArray(final int... pos) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                float[] result = new float[isize];<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                int index = get1DIndex(pos);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                }<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return result;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public double[] getDoubleArray() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                double[] result = new double[isize];<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                int index = getFirst1DIndex();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                return result;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span><a name="line.741"></a>
+<span class="sourceLineNo">742</span>        @Override<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        public double[] getDoubleArray(final int i) {<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                double[] result = new double[isize];<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                int index = get1DIndex(i);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return result;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public double[] getDoubleArray(final int i, final int j) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                double[] result = new double[isize];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                int index = get1DIndex(i, j);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return result;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        @Override<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public double[] getDoubleArray(final int... pos) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                double[] result = new double[isize];<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                int index = get1DIndex(pos);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                for (int k = 0; k &lt; isize; k++) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        result[k] = data[index + k]; // OMIT_REAL_CAST<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                }<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return result;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        @Override<a name="line.772"></a>
+<span class="sourceLineNo">773</span>        public void getDoubleArrayAbs(final int index, final double[] darray) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        darray[i] = data[index + i];<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>        }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>        @Override<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        public String getString() {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getStringAbs(getFirst1DIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        @Override<a name="line.784"></a>
+<span class="sourceLineNo">785</span>        public String getString(final int i) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                return getStringAbs(get1DIndex(i));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>        @Override<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public String getString(final int i, final int j) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return getStringAbs(get1DIndex(i, j));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        public String getString(final int... pos) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                return getStringAbs(get1DIndex(pos));<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @Override<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        protected double getFirstValue() {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                return data[getFirst1DIndex()];<a name="line.801"></a>
+<span class="sourceLineNo">802</span>        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>        @Override<a name="line.804"></a>
+<span class="sourceLineNo">805</span>        protected double getFirstValue(int i) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                return data[get1DIndex(i)];<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        }<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>        @Override<a name="line.809"></a>
+<span class="sourceLineNo">810</span>        protected double getFirstValue(int i, int j) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                return data[get1DIndex(i, j)];<a name="line.811"></a>
+<span class="sourceLineNo">812</span>        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Override<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        protected double getFirstValue(final int... pos) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                return data[get1DIndex(pos)];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>        @Override<a name="line.819"></a>
+<span class="sourceLineNo">820</span>        public Object getObjectAbs(final int index) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                short[] result = new short[isize]; // PRIM_TYPE<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                for (int i = 0; i &lt; isize; i++) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        result[i] = data[index + i];<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                return result;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>        @Override<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public String getStringAbs(final int index) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                StringBuilder s = new StringBuilder();<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                s.append('(');<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                s.append(stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        stringFormat.format(data[index]));<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                for (int i = 1; i &lt; isize; i++) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        s.append(' ');<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        s.append(stringFormat == null ? String.format("%d", data[index + i]) : // FORMAT_STRING<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                stringFormat.format(data[index + i]));<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                s.append(')');<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                return s.toString();<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>        @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                short[] oa = DTypeUtils.toShortArray(obj, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                setAbs(index, oa);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>        @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        public void set(final Object obj) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                setItem(DTypeUtils.toShortArray(obj, isize)); // CLASS_TYPE<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        @Override<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        public void set(final Object obj, final int i) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                setItem(DTypeUtils.toShortArray(obj, isize), i); // CLASS_TYPE<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span><a name="line.858"></a>
+<span class="sourceLineNo">859</span>        @Override<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public void set(final Object obj, final int i, final int j) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                setItem(DTypeUtils.toShortArray(obj, isize), i, j); // CLASS_TYPE<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        @Override<a name="line.864"></a>
+<span class="sourceLineNo">865</span>        public void set(final Object obj, int... pos) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        pos = new int[shape.length];<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                setItem(DTypeUtils.toShortArray(obj, isize), pos); // CLASS_TYPE<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>        /**<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * Set values at first position. The dataset must not be null<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         *<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param d<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @since 2.0<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         */<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public void setItem(final short[] d) { // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                if (d.length &gt; isize) {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                setAbs(getFirst1DIndex(), d);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Set values at given position. The dataset must be 1D<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         *<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param d<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         * @param i<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         */<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        public void setItem(final short[] d, final int i) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                if (d.length &gt; isize) {<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                }<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                setAbs(get1DIndex(i), d);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        /**<a name="line.899"></a>
+<span class="sourceLineNo">900</span>         * Set values at given position. The dataset must be 1D<a name="line.900"></a>
+<span class="sourceLineNo">901</span>         *<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * @param d<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param i<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param j<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         */<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public void setItem(final short[] d, final int i, final int j) { // PRIM_TYPE<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                if (d.length &gt; isize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                setAbs(get1DIndex(i, j), d);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        /**<a name="line.913"></a>
+<span class="sourceLineNo">914</span>         * Set values at given position<a name="line.914"></a>
+<span class="sourceLineNo">915</span>         *<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * @param d<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param pos<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public void setItem(final short[] d, final int... pos) { // PRIM_TYPE<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                if (d.length &gt; isize) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        throw new IllegalArgumentException("Array is larger than number of elements in an item");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                setAbs(get1DIndex(pos), d);<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>        private void setDoubleArrayAbs(final int index, final double[] d) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                for (int i = 0; i &lt; isize; i++)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        data[index + i] = (short) d[i]; // ADD_CAST<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>        @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>        public void resize(int... newShape) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                setDirty();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                IndexIterator iter = getIterator();<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                int nsize = ShapeUtils.calcSize(newShape);<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                short[] ndata; // PRIM_TYPE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                try {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        ndata = createArray(nsize);<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                } catch (Throwable t) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        throw new IllegalArgumentException(t);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                }<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                int i = 0;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                while (iter.hasNext() &amp;&amp; i &lt; nsize) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                ndata[i++] = data[iter.index + j];<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                odata = data = ndata;<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                size = nsize;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                shape = newShape;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                stride = null;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                offset = 0;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                base = null;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>        @Override<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public CompoundShortDataset getSlice(final SliceIterator siter) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                CompoundShortDataset result = new CompoundShortDataset(isize, siter.getShape());<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                short[] rdata = result.data; // PRIM_TYPE<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                IndexIterator riter = result.getIterator();<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>                while (siter.hasNext() &amp;&amp; riter.hasNext()) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        for (int i = 0; i &lt; isize; i++)<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                rdata[riter.index + i] = data[siter.index + i];<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                return result;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span><a name="line.973"></a>
+<span class="sourceLineNo">974</span>        @Override<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        public ShortDataset getElementsView(int element) { // CLASS_TYPE<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                if (element &lt; 0)<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        element += isize;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                ShortDataset view = new ShortDataset(shape); // CLASS_TYPE<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>                copyToView(this, view, true, true);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                view.setData();<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (view.stride == null) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        int[] offset = new int[1];<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        view.stride = createStrides(this, offset);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        view.offset = offset[0] + element;<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        view.base = base == null ? this : base;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        view.offset += element;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                return view;<a name="line.995"></a>
+<span class="sourceLineNo">996</span>        }<a name="line.996"></a>
+<span class="sourceLineNo">997</span><a name="line.997"></a>
+<span class="sourceLineNo">998</span>        @Override<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public ShortDataset getElements(int element) { // CLASS_TYPE<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                final ShortDataset elements = new ShortDataset(shape); // CLASS_TYPE<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span><a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                copyElements(elements, element);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                return elements;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public void copyElements(Dataset destination, int element) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                if (element &lt; 0)<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        element += isize;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                if (getElementClass() != destination.getElementClass()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                final IndexIterator it = getIterator(element);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                final short[] elements = ((ShortDataset) destination).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                destination.setDirty();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int n = 0;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                while (it.hasNext()) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        elements[n] = data[it.index];<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        n++;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>        }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @Override<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public void setElements(Dataset source, int element) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                setDirty();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                if (element &lt; 0)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        element += isize;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                if (element &lt; 0 || element &gt; isize) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        throw new IllegalArgumentException(String.format("Invalid choice of element: %d/%d", element, isize));<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                if (getElementClass() != source.getElementClass()) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        throw new IllegalArgumentException("Element class of destination does not match this dataset");<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                final IndexIterator it = getIterator(element);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                final short[] elements = ((ShortDataset) source).data; // CLASS_TYPE // PRIM_TYPE<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                int n = 0;<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        data[it.index] = elements[n];<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        n++;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        @Override<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                IndexIterator riter = result.getIterator();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                result.setDirty();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                short[] rdata = ((CompoundShortDataset) result).data; // PRIM_TYPE<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                rdata[riter.index + i] = data[iter.index + i];<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public CompoundShortDataset setByBoolean(final Object o, Dataset selection) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                if (o instanceof Dataset) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        Dataset ds = (Dataset) o;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        if (length != ds.getSize()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                throw new IllegalArgumentException(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        IndexIterator iter = ds.getIterator();<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        BooleanIterator biter = getBooleanIterator(selection);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span><a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                data[biter.index + i] = (short) ds.getElementLongAbs(iter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                while (biter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        data[biter.index] = (short) ds.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                data[biter.index + i] = 0;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                } else {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        try {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                final BooleanIterator biter = getBooleanIterator(selection);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                while (biter.hasNext()) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                                data[biter.index + i] = vr[i];<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        } catch (IllegalArgumentException e) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        }<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                return this;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>        }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        @Override<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public CompoundShortDataset setBy1DIndex(final Object o, Dataset index) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                setDirty();<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (o instanceof Dataset) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        Dataset ds = (Dataset) o;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        if (index.getSize() != ds.getSize()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                throw new IllegalArgumentException(<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span><a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span><a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span><a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                double[] temp = new double[isize];<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                        ((AbstractCompoundDataset) ds).getDoubleArrayAbs(oiter.index, temp);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        setDoubleArrayAbs(iter.index, temp);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                data[iter.index + i] = (short) ds.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        } else {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        data[iter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                data[iter.index + i] = 0;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        }<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                } else {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        try {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                final IntegerIterator iter = new IntegerIterator(index, size, isize);<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span><a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                while (iter.hasNext()) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        setAbs(iter.index, vr);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        } catch (IllegalArgumentException e) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                return this;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        @Override<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        public CompoundShortDataset setByIndexes(final Object o, final Object... indexes) {<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                setDirty();<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                final int[] pos = iter.getPos();<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                if (o instanceof Dataset) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        Dataset ds = (Dataset) o;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                throw new IllegalArgumentException(<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                                                "Number of items in selection does not match number of items in dataset");<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span><a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        IndexIterator oiter = ds.getIterator();<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                        if (ds instanceof AbstractCompoundDataset) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                if (isize != ds.getElementsPerItem()) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                        throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                double[] temp = new double[isize];<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        ((AbstractCompoundDataset) ds).getDoubleArray(temp, pos);<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        setDoubleArrayAbs(get1DIndex(pos), temp);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                        } else {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        int n = get1DIndex(pos);<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                        data[n] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[n + i] = 0;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                } else {<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        try {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (iter.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        setAbs(get1DIndex(pos), vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                        } catch (IllegalArgumentException e) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                throw new IllegalArgumentException("Object for setting is not a dataset or number");<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                return this;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span><a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>        @Override<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>        CompoundShortDataset setSlicedView(Dataset view, Dataset d) {<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                setDirty();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                final int is = view.getElementsPerItem();<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                if (is &gt; 1) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        if (d.getElementsPerItem() == 1) {<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                while (it.hasNext()) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                        final short bv = (short) it.bLong; // PRIM_TYPE // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        data[it.aIndex] = bv;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex + j] = bv;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                while (it.hasNext()) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                        data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                                data[it.aIndex + j] = (short) d.getElementLongAbs(it.bIndex + j); // GET_ELEMENT_WITH_CAST<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        }<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                } else {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        while (it.hasNext()) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                }<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                return this;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>        }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span><a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        @Override<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        public CompoundShortDataset setSlice(final Object o, final IndexIterator siter) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                setDirty();<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                if (o instanceof IDataset) {<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        final IDataset ds = (IDataset) o;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                        final int[] oshape = ds.getShape();<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                throw new IllegalArgumentException(String.format(<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                                Arrays.toString(siter.getShape())));<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                        }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                        if (ds instanceof Dataset) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final Dataset ads = (Dataset) ds;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                IndexIterator oiter = ads.getIterator();<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                if (ds instanceof AbstractCompoundDataset) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                        if (isize != ads.getElementsPerItem()) {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                                throw new IllegalArgumentException("Input dataset is not compatible with slice");<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                        }<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                        data[siter.index + i] = (short) ads.getElementLongAbs(oiter.index + i); // GET_ELEMENT_WITH_CAST<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                                data[siter.index] = (short) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                        data[siter.index + i] = 0;<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                }<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                        } else {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                final int[] pos = oiter.getPos();<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span><a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                if (ds.getElementsPerItem() == 1) {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                data[siter.index] = ds.getShort(pos); // PRIM_TYPE<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                        data[siter.index + i] = 0;<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                                }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                } else {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        while (siter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                                final short[] val = DTypeUtils.toShortArray(ds.getObject(pos), isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                        data[siter.index + i] = val[i];<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                }<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        }<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                        try {<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                final short[] vr = DTypeUtils.toShortArray(o, isize); // PRIM_TYPE // CLASS_TYPE<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                while (siter.hasNext()) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                                data[siter.index + i] = vr[i];<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } catch (IllegalArgumentException e) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                return this;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>        }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span><a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>        @Override<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                short[] ddata = (short[]) dest.getBuffer(); // PRIM_TYPE<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span><a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                if (dest.getElementsPerItem() != isize) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                        throw new IllegalArgumentException(String.format(<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                        "Destination dataset is incompatible as it has %d elements per item not %d",<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        dest.getElementsPerItem(), isize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span><a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                }<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span><a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                dest.setDirty();<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        for (int i = 0; i &lt; isize; i++) {<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                ddata[diter.index + i] = data[siter.index + i];<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                }<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span><a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        @Override<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                setDirty();<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                short[] sdata = (short[]) src; // PRIM_TYPE<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span><a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                        throw new IllegalArgumentException("source array is not large enough");<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                }<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                        for (int j = 0; j &lt; isize; j++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                data[siter.index + j] = sdata[isize * i + j];<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                }<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        }<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span><a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>        @Override<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>        public boolean containsNans() {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                return false;<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>        }<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span><a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>        @Override<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>        public boolean containsInfs() {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                return false;<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>        }<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span><a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>        @Override<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>        public boolean containsInvalidNumbers() {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                return false;<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>        }<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span><a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>        @Override<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>        public CompoundShortDataset iadd(final Object b) {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                setDirty();<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                int is = bds.getElementsPerItem();<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                if (bds.getSize() == 1) {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                        final IndexIterator it = getIterator();<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                        final int bOffset = bds.getOffset();<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        if (is == 1) {<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                if (useLong) {<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        while (it.hasNext()) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                                        data[it.index + i] += lb;<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                                }<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                        }<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                } else {<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                        while (it.hasNext()) {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                                        data[it.index + i] += db;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                                }<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        }<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                }<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                        } else if (is == isize) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                if (useLong) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        while (it.hasNext()) {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                        data[it.index + i] += bds.getElementLongAbs(i);<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                                }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                } else {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                        while (it.hasNext()) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                        data[it.index + i] += bds.getElementDoubleAbs(i);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                }<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                        }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                        } else {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        }<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                } else {<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                        it.setOutputDouble(!useLong);<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (is == 1) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (useLong) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                final long lb = it.bLong;<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                                data[it.aIndex] += lb;<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                                        data[it.aIndex + i] += lb;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                                }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                        }<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                } else {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                        while (it.hasNext()) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                final double db = it.bDouble;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                data[it.aIndex] += db;<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        data[it.aIndex + i] += db;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                }<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                        } else if (is == isize) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                if (useLong) {<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                        while (it.hasNext()) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                data[it.aIndex] += it.bLong;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        data[it.aIndex + i] += bds.getElementLongAbs(it.bIndex + i);<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                } else {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                        while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                        data[it.aIndex + i] += bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                        } else {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                }<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                return this;<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span><a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>        @Override<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        public CompoundShortDataset isubtract(final Object b) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                setDirty();<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                int is = bds.getElementsPerItem();<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                if (bds.getSize() == 1) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                        final IndexIterator it = getIterator();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                        final int bOffset = bds.getOffset();<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                        if (is == 1) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                if (useLong) {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        while (it.hasNext()) {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                                        data[it.index + i] -= lb;<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                        }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                } else {<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        while (it.hasNext()) {<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                        data[it.index + i] -= db;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                }<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                        } else if (is == isize) {<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                if (useLong) {<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        while (it.hasNext()) {<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                                        data[it.index + i] -= bds.getElementLongAbs(i);<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                        }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                } else {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                        while (it.hasNext()) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                        data[it.index + i] -= bds.getElementDoubleAbs(i);<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                        }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                }<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                        } else {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                        }<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                } else {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                        it.setOutputDouble(!useLong);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                        if (is == 1) {<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                if (useLong) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                        while (it.hasNext()) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                final long lb = it.bLong;<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                data[it.aIndex] += lb;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        data[it.aIndex + i] -= lb;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                } else {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                        while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                final double db = it.bDouble;<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                data[it.aIndex] += db;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                        data[it.aIndex + i] -= db;<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                        }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        } else if (is == isize) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                if (useLong) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                        while (it.hasNext()) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                data[it.aIndex] += it.bLong;<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                        data[it.aIndex + i] -= bds.getElementLongAbs(it.bIndex + i);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                        }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                } else {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                        while (it.hasNext()) {<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                                data[it.aIndex] += it.bDouble;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                                        data[it.aIndex + i] -= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                }<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                }<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                        } else {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                return this;<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>        }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>        @Override<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>        public CompoundShortDataset imultiply(final Object b) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                setDirty();<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                int is = bds.getElementsPerItem();<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                if (bds.getSize() == 1) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        final IndexIterator it = getIterator();<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        final int bOffset = bds.getOffset();<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        if (useLong) {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                if (is == 1) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                        while (it.hasNext()) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                        data[it.index + i] *= lb;<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                } else if (is == isize) {<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        while (it.hasNext()) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                        data[it.index + i] *= bds.getElementLongAbs(i);<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                }<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                        }<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                } else {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                        } else {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                if (is == 1) {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                        while (it.hasNext()) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                        data[it.index + i] *= db;<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                        }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                } else if (is == isize) {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                        while (it.hasNext()) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        data[it.index + i] *= bds.getElementDoubleAbs(i);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                        }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                } else {<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                } else {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                        it.setOutputDouble(!useLong);<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                        if (useLong) {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                if (is == 1) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                        while (it.hasNext()) {<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                final double lb = it.bLong;<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        data[it.aIndex + i] *= lb;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (is == isize) {<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                data[it.aIndex] *= it.bLong;<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                        data[it.aIndex + i] *= bds.getElementLongAbs(it.bIndex + i);<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                }<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                        }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                } else {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                }<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                        } else {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                if (is == 1) {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                        while (it.hasNext()) {<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                final double db = it.bDouble;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                        data[it.aIndex + i] *= db;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                                }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                        }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                } else if (is == isize) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                                        while (it.hasNext()) {<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                                                data[it.aIndex] *= it.bDouble;<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                                                for (int i = 1; i &lt; isize; i++) {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                                                        data[it.aIndex + i] *= bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                                                }<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                        }<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                } else {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                        }<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                return this;<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>        }<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span><a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        @Override<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>        public CompoundShortDataset idivide(final Object b) {<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                setDirty();<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                int is = bds.getElementsPerItem();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                if (bds.getSize() == 1) {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                        final IndexIterator it = getIterator();<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                        final int bOffset = bds.getOffset();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                        if (useLong) {<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                if (is == 1) {<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                        if (lb == 0) { // INT_USE<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                                                fill(0); // INT_USE<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                                        } else { // INT_USE<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                                        while (it.hasNext()) {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                                                        data[it.index + i] /= lb;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                                                }<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                        }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        } // INT_USE<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                } else if (is == isize) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                                        while (it.hasNext()) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                                        final long lb = bds.getElementLongAbs(i);<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                try {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                                data[it.index + i] /= lb; // INT_EXCEPTION<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                } catch (ArithmeticException e) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        data[it.index + i] = 0;<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                }<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                                }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                        }<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                } else {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                        } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                if (is == 1) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                        if (db == 0) { // INT_USE<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                                fill(0); // INT_USE<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        } else { // INT_USE<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                                        while (it.hasNext()) {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                                        data[it.index + i] /= db;<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                                }<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                        }<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                        } // INT_USE<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                } else if (is == isize) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                                        final double db = bds.getElementDoubleAbs(i);<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                try {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                                                data[it.index + i] /= db; // INT_EXCEPTION<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                } catch (ArithmeticException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                        data[it.index + i] = 0;<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                }<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                }<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                        }<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                } else {<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                        }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                } else {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                        it.setOutputDouble(!useLong);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        if (useLong) {<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                if (is == 1) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                        while (it.hasNext()) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                final long lb = it.bLong;<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                if (lb == 0) { // INT_USE<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                        }// INT_USE<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                } else { // INT_USE<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        data[it.aIndex + i] /= lb;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                } // INT_USE<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                } else if (is == isize) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        while (it.hasNext()) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                try {<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                                                data[it.aIndex + i] /= lb; // INT_EXCEPTION<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                } catch (ArithmeticException e) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        data[it.aIndex + i] = 0;<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                }<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                }<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                        }<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                        } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                if (is == 1) {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                        while (it.hasNext()) {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                final double db = it.bDouble;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                if (db == 0) { // INT_USE<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                        for (int i = 0; i &lt; isize; i++) { // INT_USE<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                                        }// INT_USE<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                                } else { // INT_USE<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                        data[it.aIndex + i] /= db;<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                } // INT_USE<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                        }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                } else if (is == isize) {<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        while (it.hasNext()) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                try {<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                                                data[it.aIndex + i] /= db; // INT_EXCEPTION<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                } catch (ArithmeticException e) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                        data[it.aIndex + i] = 0;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                                }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        }<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                } else {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                }<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                        }<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                return this;<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>        }<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span><a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        @Override<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        public CompoundShortDataset ifloor() {<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                return this;<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span><a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>        @Override<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>        public CompoundShortDataset iremainder(final Object b) {<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                setDirty();<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                int is = bds.getElementsPerItem();<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                if (bds.getSize() == 1) {<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                        final IndexIterator it = getIterator();<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        final int bOffset = bds.getOffset();<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                        if (useLong) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                if (is == 1) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        final long lb = bds.getElementLongAbs(bOffset);<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        if (lb == 0) { // INT_USE<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                fill(0); // INT_USE<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                        } else { // INT_USE<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                        while (it.hasNext()) {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                        data[it.index + i] %= lb;<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                                }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                        }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                        } // INT_USE<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                } else if (is == isize) {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                        while (it.hasNext()) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                try {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                                data[it.index + i] %= bds.getElementLongAbs(i); // INT_EXCEPTION<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                } catch (ArithmeticException e) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        data[it.index + i] = 0;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                                }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                } else {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                }<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                        } else {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                if (is == 1) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                        final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        if (db == 0) { // INT_USE<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                                fill(0); // INT_USE<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        } else { // INT_USE<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                        while (it.hasNext()) {<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                        data[it.index + i] %= db;<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                }<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                        }<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                        } // INT_USE<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                } else if (is == isize) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                        while (it.hasNext()) {<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                try {<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                                                                data[it.index + i] %= bds.getElementDoubleAbs(i); // INT_EXCEPTION<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                } catch (ArithmeticException e) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        data[it.index + i] = 0;<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                                                }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                        }<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                } else {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                }<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                        }<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                } else {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        it.setOutputDouble(!useLong);<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                        if (useLong) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                if (is == 1) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        while (it.hasNext()) {<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                                final long lb = it.bLong;<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                                if (lb == 0) { // INT_USE<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                } else { // INT_USE<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                for (int i = 0; i &lt; isize; i++)<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                        data[it.aIndex + i] %= lb;<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                                } // INT_USE<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                } else if (is == isize) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                        while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                                        final long lb = bds.getElementLongAbs(it.bIndex + i);<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                try {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                                                data[it.aIndex + i] %= lb; // INT_EXCEPTION<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                } catch (ArithmeticException e) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                        data[it.aIndex + i] = 0;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                                }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                        }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                } else {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                }<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                        } else {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                if (is == 1) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                        while (it.hasNext()) {<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                final double db = it.bDouble;<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                                if (db == 0) { // INT_USE<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                                        for (int i = 0; i &lt; isize; i++) // INT_USE<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                                                data[it.aIndex + i] = 0; // INT_USE<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                } else { // INT_USE<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                        data[it.aIndex + i] %= db;<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                                }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                                } // INT_USE<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        }<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                } else if (is == isize) {<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                        while (it.hasNext()) {<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                        final double db = bds.getElementDoubleAbs(it.bIndex + i);<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                try {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                                                data[it.aIndex + i] %= db; // INT_EXCEPTION<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                                } catch (ArithmeticException e) {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                        data[it.aIndex + i] = 0;<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                                }<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                } else {<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                        throw new IllegalArgumentException("Argument does not have same number of elements per item or is not a non-compound dataset");<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                                }<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                        }<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                }<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                return this;<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>        }<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span><a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>        @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>        public CompoundShortDataset ipower(final Object b) {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                setDirty();<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                final int is = bds.getElementsPerItem();<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                if (bds.getSize() == 1) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        final int bOffset = bds.getOffset();<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                        final IndexIterator it = getIterator();<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        if (bds.isComplex()) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                                if (vi == 0) {<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                                        while (it.hasNext()) {<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                                                        final double v = Math.pow(data[it.index + i], vr);<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                                                        } else { // INT_USE<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                                                        data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                                                        } // INT_USE<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                                                }<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                                        }<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                                } else {<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                                        while (it.hasNext()) {<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                                                for (int i = 0; i &lt; isize; i++) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                                                        Complex zd = new Complex(data[it.index + i], 0);<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                                                        final double v = zd.pow(zv).getReal();<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                                                                data[it.index + i] = 0; // INT_USE<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                                                        } else { // INT_USE<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                                        data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                                                        } // INT_USE<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                                }<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                                        }<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                                }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        } else if (is == 1) {<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                while (it.hasNext()) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                                final double v = Math.pow(data[it.index + i], vr);<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                                                } else { // INT_USE<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                                                data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                                                } // INT_USE<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                                        }<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                                }<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                        } else if (is == isize) {<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                while (it.hasNext()) {<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        for (int i = 0; i &lt; isize; i++) {<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                                                final double v = Math.pow(data[it.index + i], bds.getElementDoubleAbs(i));<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                                                        data[it.index + i] = 0; // INT_USE<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                                                } else { // INT_USE<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                                                data[it.index + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                                                } // INT_USE<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                                        }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                        }<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                } else {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                        it.setOutputDouble(true);<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                        if (bds.isComplex()) {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                                while (it.hasNext()) {<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                                        double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                                        } else { // INT_USE<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                                        } // INT_USE<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                                v = new Complex(data[it.aIndex + i], 0).pow(zv).getReal();<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                                } else { // INT_USE<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                                data[it.aIndex + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                } // INT_USE<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                        }<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                        } else {<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                while (it.hasNext()) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                        double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                                        } else { // INT_USE<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                        } // INT_USE<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                                v = Math.pow(data[it.aIndex + i], bds.getElementDoubleAbs(it.bIndex + i));<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                        data[it.aIndex + i] = 0; // INT_USE<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                } else { // INT_USE<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                                data[it.aIndex + i] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                                                } // INT_USE<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                                        }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                                }<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                return this;<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>        }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span><a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>        @Override<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                it.setOutputDouble(true);<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                double sum = 0;<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                double comp = 0;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                final int bis = bds.getElementsPerItem();<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span><a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                if (bis == 1) {<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        if (w == null) {<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                                while (it.hasNext()) {<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                                        final double db = it.bDouble;<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                                        double diff = it.aDouble - db;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                        double err = diff * diff - comp;<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        double temp = sum + err;<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        comp = (temp - sum) - err;<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                        sum = temp;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                                err = diff * diff - comp;<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                                                temp = sum + err;<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                                                comp = (temp - sum) - err;<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                                                sum = temp;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                                        }<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                                }<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                        } else {<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                                IndexIterator itw = w.getIterator();<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        final double db = it.bDouble;<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        double diff = it.aDouble - db;<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        double err = diff * diff * dw - comp;<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                        double temp = sum + err;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                        comp = (temp - sum) - err;<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                                        sum = temp;<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                                                diff = data[it.aIndex + i] - db;<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                                                err = diff * diff * dw - comp;<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                                                temp = sum + err;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                                                comp = (temp - sum) - err;<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>                                                sum = temp;<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                                        }<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                                }<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        }<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>                } else {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                        if (w == null) {<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                                while (it.hasNext()) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                        double err = diff * diff - comp;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                                        double temp = sum + err;<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                                        comp = (temp - sum) - err;<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                                        sum = temp;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                                                err = diff * diff - comp;<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>                                                temp = sum + err;<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                                                comp = (temp - sum) - err;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                                                sum = temp;<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>                                        }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                                }<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                        } else {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                                IndexIterator itw = w.getIterator();<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                                        double diff = it.aDouble - it.bDouble;<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                        final double dw = w.getElementDoubleAbs(itw.index);<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                                        double err = diff * diff * dw - comp;<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                                        double temp = sum + err;<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                                        comp = (temp - sum) - err;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                                        sum = temp;<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                        for (int i = 1; i &lt; isize; i++) {<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                                diff = data[it.aIndex + i] - bds.getElementDoubleAbs(it.bIndex + i);<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                                err = diff * diff * dw - comp;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                                temp = sum + err;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                                comp = (temp - sum) - err;<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                                sum = temp;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                                        }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                                }<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                        }<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                return sum;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>        }<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>}<a name="line.2073"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousIterator.html
new file mode 100644
index 0000000..1761099
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousIterator.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over contiguous datasets<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class ContiguousIterator extends IndexIterator {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        final private int imax; // maximum index in array<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        final private int istep; // step over items<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        final private int element;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * Constructor for an iterator over the items of a contiguous dataset that are<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * within the dimensions<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         *<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param length of entire data array<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public ContiguousIterator(final int length) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                this(length, 1);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * Constructor for an iterator over the items of a contiguous dataset that are<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * within the dimensions<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         *<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @param length of entire data array<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param isize number of elements in an item<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public ContiguousIterator(final int length, final int isize) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                this(length, isize, 0);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Constructor for an iterator over the items of a contiguous dataset that are<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * within the dimensions<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param length of entire data array<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param isize number of elements in an item<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param element element to start with (for compound datasets)<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public ContiguousIterator(final int length, final int isize, final int element) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                istep = isize;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                index = -istep + element;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                imax = length*isize;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                this.element = element;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        @Override<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public boolean hasNext() {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                index += istep;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                return index &lt; imax;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public int[] getPos() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                return null;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>        @Override<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public void reset() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                index = -istep + element;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>}<a name="line.74"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
new file mode 100644
index 0000000..9609ccc
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousIteratorWithPosition.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over contiguous datasets and keep track of position. Note this is slower than ContiguousIterator<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class ContiguousIteratorWithPosition extends IndexIterator {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int[] shape;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        final private int endrank; // last dimensions index<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        final private int imax; // maximum index in array<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int istep; // step over items<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        final private int[] pos; // position in dataset<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        /**<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * Constructor for an iterator over the items of a dataset that are<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * within the dimensions<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         *<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param shape<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param length of entire data array<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public ContiguousIteratorWithPosition(final int[] shape, final int length) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                this(shape, length, 1);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        }<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * Constructor for an iterator over the items of a dataset that are<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * within the dimensions<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         *<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param shape<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param length of entire data array<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param isize number of elements in an item<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public ContiguousIteratorWithPosition(final int[] shape, final int length, final int isize) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                this.shape = shape;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                endrank = this.shape.length - 1;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                istep = isize;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (shape.length == 0) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        pos = new int[0];<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                } else {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        pos = new int[endrank + 1];<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        pos[endrank] = -1;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                index = -isize;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                imax = length;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        @Override<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public boolean hasNext() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                // now move on one position<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                int j = endrank;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                for (; j &gt;= 0; j--) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        pos[j]++;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        if (pos[j] &gt;= shape[j]) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                pos[j] = 0;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        } else {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                break;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                if (j == -1 &amp;&amp; endrank &gt;= 0) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        return false;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                index += istep;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                return index &lt; imax;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>        /**<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @return position indices (nb not a copy)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        @Override<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        public int[] getPos() {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                return pos;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>        @Override<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public void reset() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (shape.length &gt; 0) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        Arrays.fill(pos, 0);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        pos[endrank] = -1;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                index = -istep;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>        @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        public int[] getShape() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                return shape;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>}<a name="line.102"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html
new file mode 100644
index 0000000..c002a7c
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousPairIterator.html
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over a pair of contiguous datasets<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class ContiguousPairIterator extends BroadcastIterator {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        private final int aMax; // maximum index in array<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        private final int aStep; // step over items<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private final int bMax; // maximum index in array<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private final int bStep;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private final int oStep;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        public ContiguousPairIterator(Dataset a, Dataset b, Dataset o, boolean createIfNull) {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                super(a, b, o);<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                aStep = a.getElementsPerItem();<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                aMax = a.getSize() * aStep;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                bStep = b.getElementsPerItem();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                bMax = b.getSize() * bStep;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (outputA) {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                        oStep = aStep;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                } else if (outputB) {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        oStep = bStep;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                } else if (o != null) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                        oStep = o.getElementsPerItem();<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                } else if (createIfNull) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                        oDataset = BroadcastUtils.createDataset(a, b, a.getShapeRef());<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        oStep = oDataset.getElementsPerItem();<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                } else {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        oStep = 1;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                maxShape = a.getShape();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                reset();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        public boolean hasNext() {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                aIndex += aStep;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                bIndex += bStep;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>                if (outputA) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        oIndex = aIndex;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                } else if (outputB) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        oIndex = bIndex;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                } else {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        oIndex += oStep;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                if (aIndex &gt;= aMax || bIndex &gt;= bMax) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        return false;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                if (read) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        if (asDouble) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        } else {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                aLong = aDataset.getElementLongAbs(aIndex);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                                bLong = bDataset.getElementLongAbs(bIndex);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        }<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return true;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        @Override<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        public int[] getPos() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                return null;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>        @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public void reset() {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                aIndex = -aStep;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                bIndex = -bStep;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                oIndex = -oStep;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                if (read) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        storeCurrentValues();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>}<a name="line.89"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html
new file mode 100644
index 0000000..31731ea
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ContiguousSingleIterator.html
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Class to run over a pair of contiguous datasets with only the second dataset read<a name="line.13"></a>
+<span class="sourceLineNo">014</span> */<a name="line.14"></a>
+<span class="sourceLineNo">015</span>public class ContiguousSingleIterator extends BroadcastSelfIterator {<a name="line.15"></a>
+<span class="sourceLineNo">016</span>        private final int aMax; // maximum index in array<a name="line.16"></a>
+<span class="sourceLineNo">017</span>        private final int aStep; // step over items<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private final int bMax; // maximum index in array<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        private final int bStep;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        public ContiguousSingleIterator(Dataset a, Dataset b) {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>                super(a, b);<a name="line.22"></a>
+<span class="sourceLineNo">023</span>                aStep = a.getElementsPerItem();<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                aMax = a.getSize() * aStep;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                bStep = b.getElementsPerItem();<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                bMax = b.getSize() * bStep;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                maxShape = a.getShape();<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                asDouble = aDataset.hasFloatingPointElements();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                reset();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        @Override<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public boolean hasNext() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                aIndex += aStep;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                bIndex += bStep;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                if (aIndex &gt;= aMax || bIndex &gt;= bMax) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                        return false;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                }<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                if (read) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        if (asDouble) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                                bDouble = bDataset.getElementDoubleAbs(bIndex);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                        } else {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                bLong = bDataset.getElementLongAbs(bIndex);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                return true;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        }<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        @Override<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public int[] getPos() {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return null;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public void reset() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                aIndex = -aStep;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                bIndex = -bStep;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                if (read) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        storeCurrentValues();<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                }<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>}<a name="line.63"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DTypeUtils.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DTypeUtils.html
new file mode 100644
index 0000000..9891a12
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DTypeUtils.html
@@ -0,0 +1,1315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.lang.reflect.Array;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.Date;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.HashMap;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.List;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Map;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.commons.math3.complex.Complex;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.slf4j.Logger;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.slf4j.LoggerFactory;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class DTypeUtils {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        protected static final Logger logger = LoggerFactory.getLogger(DTypeUtils.class);<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private static final Map&lt;Class&lt;? extends Dataset&gt;, Integer&gt; interface2DTypes = createInterfaceMap(); // map interface to dataset type<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private static Map&lt;Class&lt;? extends Dataset&gt;, Integer&gt; createInterfaceMap() {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                Map&lt;Class&lt;? extends Dataset&gt;, Integer&gt; map = new HashMap&lt;Class&lt;? extends Dataset&gt;, Integer&gt;();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                map.put(BooleanDataset.class, Dataset.BOOL);<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                map.put(ByteDataset.class, Dataset.INT8);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                map.put(ShortDataset.class, Dataset.INT16);<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                map.put(IntegerDataset.class, Dataset.INT32);<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                map.put(LongDataset.class, Dataset.INT64);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                map.put(FloatDataset.class, Dataset.FLOAT32);<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                map.put(DoubleDataset.class, Dataset.FLOAT64);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                map.put(CompoundByteDataset.class, Dataset.ARRAYINT8);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                map.put(CompoundShortDataset.class, Dataset.ARRAYINT16);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                map.put(CompoundIntegerDataset.class, Dataset.ARRAYINT32);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                map.put(CompoundLongDataset.class, Dataset.ARRAYINT64);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                map.put(CompoundFloatDataset.class, Dataset.ARRAYFLOAT32);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                map.put(CompoundDoubleDataset.class, Dataset.ARRAYFLOAT64);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                map.put(ComplexFloatDataset.class, Dataset.COMPLEX64);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                map.put(ComplexDoubleDataset.class, Dataset.COMPLEX128);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                map.put(ObjectDataset.class, Dataset.OBJECT);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                map.put(StringDataset.class, Dataset.STRING);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                map.put(DateDataset.class, Dataset.DATE);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                map.put(RGBDataset.class, Dataset.RGB);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                map.put(ObjectDataset.class, Dataset.OBJECT);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                return map;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        transient private static final Map&lt;Class&lt;?&gt;, Integer&gt; class2DType = createElementClassMap();<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        private static Map&lt;Class&lt;?&gt;, Integer&gt; createElementClassMap() {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                Map&lt;Class&lt;?&gt;, Integer&gt; result = new HashMap&lt;Class&lt;?&gt;, Integer&gt;();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                result.put(Boolean.class, Dataset.BOOL);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                result.put(Byte.class, Dataset.INT8);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                result.put(Short.class, Dataset.INT16);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                result.put(Integer.class, Dataset.INT32);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                result.put(Long.class, Dataset.INT64);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                result.put(Float.class, Dataset.FLOAT32);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                result.put(Double.class, Dataset.FLOAT64);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                result.put(boolean.class, Dataset.BOOL);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                result.put(byte.class, Dataset.INT8);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                result.put(short.class, Dataset.INT16);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                result.put(int.class, Dataset.INT32);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                result.put(long.class, Dataset.INT64);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                result.put(float.class, Dataset.FLOAT32);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                result.put(double.class, Dataset.FLOAT64);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                result.put(Complex.class, Dataset.COMPLEX128);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                result.put(String.class, Dataset.STRING);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                result.put(Date.class, Dataset.DATE);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                result.put(Object.class, Dataset.OBJECT);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return result;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param a<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @return name of dataset type<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public static String getDTypeName(Dataset a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                return getDTypeName(a.getDType(), a.getElementsPerItem());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param a<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @return name of dataset type<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public static String getDTypeName(ILazyDataset a) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                return getDTypeName(getDTypeFromClass(a.getElementClass()), a.getElementsPerItem());<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>        /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param dtype<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * @param itemSize<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @return name of dataset type<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         */<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        public static String getDTypeName(int dtype, int itemSize) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                int bytes = getItemBytes(dtype, 1);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                if (isDTypeComplex(dtype)) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        return "COMPLEX" + bytes*16;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                } else if (dtype == Dataset.RGB) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return "RGB";<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                String prefix = itemSize &gt; 1 ? ("ARRAY of " + itemSize + " ") : "";<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                if (isDTypeFloating(dtype)) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return prefix + "FLOAT" + bytes*8;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                switch (dtype) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                case Dataset.BOOL:<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        return prefix + "BOOLEAN";<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                case Dataset.STRING:<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        return prefix + "STRING";<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                case Dataset.DATE:<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        return prefix + "DATE";<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                case Dataset.OBJECT:<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        return prefix + "OBJECT";<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return prefix + "INT" + bytes*8;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * @param clazz dataset class<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * @return dataset type for dataset class<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        public static int getDType(Class&lt;? extends Dataset&gt; clazz) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                if (!interface2DTypes.containsKey(clazz)) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        throw new IllegalArgumentException("Interface class not allowed or supported");<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                }<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                return interface2DTypes.get(clazz);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        public static boolean isDTypeElemental(int dtype) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return dtype &lt;= Dataset.DATE;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public static boolean isDTypeInteger(int dtype) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                return dtype == Dataset.INT8 || dtype == Dataset.INT16 || dtype == Dataset.INT32 || dtype == Dataset.INT64 ||<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                dtype == Dataset.ARRAYINT8 || dtype == Dataset.ARRAYINT16 || dtype == Dataset.ARRAYINT32 || dtype == Dataset.ARRAYINT64 || dtype == Dataset.RGB;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public static boolean isDTypeFloating(int dtype) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                return dtype == Dataset.FLOAT32 || dtype == Dataset.FLOAT64 || dtype == Dataset.COMPLEX64 || dtype == Dataset.COMPLEX128 ||<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                dtype == Dataset.ARRAYFLOAT32 || dtype == Dataset.ARRAYFLOAT64;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public static boolean isDTypeComplex(int dtype) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return dtype == Dataset.COMPLEX64 || dtype == Dataset.COMPLEX128;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @param dtype<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @return true if dataset type is numerical, i.e. a dataset contains numbers<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         */<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public static boolean isDTypeNumerical(int dtype) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                return isDTypeInteger(dtype) || isDTypeFloating(dtype) || dtype == Dataset.BOOL;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>        /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * Find dataset type that best fits given types The best type takes into account complex and array datasets<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         *<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @param atype<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         *            first dataset type<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @param btype<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         *            second dataset type<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @return best dataset type<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public static int getBestDType(final int atype, final int btype) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                int besttype;<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>                int a = atype &gt;= Dataset.ARRAYINT8 ? atype / Dataset.ARRAYMUL : atype;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                int b = btype &gt;= Dataset.ARRAYINT8 ? btype / Dataset.ARRAYMUL : btype;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                if (isDTypeFloating(a)) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        if (!isDTypeFloating(b)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                b = getBestFloatDType(b);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                if (isDTypeComplex(a)) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                        b += Dataset.COMPLEX64 - Dataset.FLOAT32;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                }<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                } else if (isDTypeFloating(b)) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        a = getBestFloatDType(a);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        if (isDTypeComplex(b)) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                a += Dataset.COMPLEX64 - Dataset.FLOAT32;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                besttype = a &gt; b ? a : b;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                if (atype &gt;= Dataset.ARRAYINT8 || btype &gt;= Dataset.ARRAYINT8) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        if (besttype &gt;= Dataset.COMPLEX64) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                throw new IllegalArgumentException("Complex type cannot be promoted to compound type");<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        besttype *= Dataset.ARRAYMUL;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                return besttype;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>        /**<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * Find floating point dataset type that best fits given types. The best type takes into account complex and array<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * datasets<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         *<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param otype<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         *            old dataset type<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return best dataset type<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public static int getBestFloatDType(final int otype) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                int btype;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                switch (otype) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                case Dataset.BOOL:<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                case Dataset.INT8:<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                case Dataset.INT16:<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                case Dataset.ARRAYINT8:<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                case Dataset.ARRAYINT16:<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                case Dataset.FLOAT32:<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                case Dataset.ARRAYFLOAT32:<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                case Dataset.COMPLEX64:<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                case Dataset.RGB:<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        btype = Dataset.FLOAT32; // demote, if necessary<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        break;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                case Dataset.INT32:<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                case Dataset.INT64:<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                case Dataset.ARRAYINT32:<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                case Dataset.ARRAYINT64:<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                case Dataset.FLOAT64:<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                case Dataset.ARRAYFLOAT64:<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                case Dataset.COMPLEX128:<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        btype = Dataset.FLOAT64; // promote, if necessary<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        break;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                default:<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        btype = otype; // for non-numeric datasets, preserve type<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        break;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return btype;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>        /**<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * Find floating point dataset type that best fits given class The best type takes into account complex and array<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * datasets<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param cls<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         *            of an item or element<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @return best dataset type<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        public static int getBestFloatDType(Class&lt;? extends Object&gt; cls) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                return getBestFloatDType(getDTypeFromClass(cls));<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>        /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * Get dataset type from an element class<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         *<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @param cls element class<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * @return dataset type<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         */<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        public static int getDTypeFromClass(Class&lt;? extends Object&gt; cls) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return getDTypeFromClass(cls, 1);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * Get dataset type from an element class<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         *<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @param cls element class<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * @return dataset type<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         */<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        public static int getDTypeFromClass(Class&lt;? extends Object&gt; cls, int isize) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                Integer dtype = class2DType.get(cls);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                if (dtype == null) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        throw new IllegalArgumentException("Class of object not supported");<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                if (isize != 1) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        if (dtype &lt; Dataset.FLOAT64)<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                dtype *= Dataset.ARRAYMUL;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                return dtype;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>        /**<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * Get dataset type from an object. The following are supported: Java Number objects, Apache common math Complex<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * objects, Java arrays and lists<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         *<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * @param obj<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @return dataset type<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public static int getDTypeFromObject(Object obj) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                int dtype = -1;<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>                if (obj == null) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        return dtype;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>                if (obj instanceof List&lt;?&gt;) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        int l = jl.size();<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                int ldtype = getDTypeFromObject(jl.get(i));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                if (ldtype &gt; dtype) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        dtype = ldtype;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                } else if (obj.getClass().isArray()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        Class&lt;?&gt; ca = obj.getClass().getComponentType();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        if (isClassSupportedAsElement(ca)) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                return getDTypeFromClass(ca);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        int l = Array.getLength(obj);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                Object lo = Array.get(obj, i);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                int ldtype = getDTypeFromObject(lo);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                if (ldtype &gt; dtype) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                        dtype = ldtype;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                } else if (obj instanceof Dataset) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        return ((Dataset) obj).getDType();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                } else if (obj instanceof ILazyDataset) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        dtype = getDTypeFromClass(((ILazyDataset) obj).getElementClass(), ((ILazyDataset) obj).getElementsPerItem());<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                } else {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        dtype = getDTypeFromClass(obj.getClass());<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                return dtype;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>        /**<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * Get dataset type from given dataset<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @param d<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @return dataset type<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         */<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public static int getDType(ILazyDataset d) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (d instanceof LazyDatasetBase)<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ((LazyDatasetBase) d).getDType();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                return getDTypeFromClass(d.getElementClass(), d.getElementsPerItem());<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * The largest dataset type suitable for a summation of around a few thousand items without changing from the "kind"<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * of dataset<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         *<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @param otype<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @return largest dataset type available for given dataset type<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        public static int getLargestDType(final int otype) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                switch (otype) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                case Dataset.BOOL:<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                case Dataset.INT8:<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                case Dataset.INT16:<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return Dataset.INT32;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                case Dataset.INT32:<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                case Dataset.INT64:<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                        return Dataset.INT64;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                case Dataset.FLOAT32:<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                case Dataset.FLOAT64:<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        return Dataset.FLOAT64;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                case Dataset.COMPLEX64:<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                case Dataset.COMPLEX128:<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        return Dataset.COMPLEX128;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                case Dataset.ARRAYINT8:<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                case Dataset.ARRAYINT16:<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        return Dataset.ARRAYINT32;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                case Dataset.ARRAYINT32:<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                case Dataset.ARRAYINT64:<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return Dataset.ARRAYINT64;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                case Dataset.ARRAYFLOAT32:<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                case Dataset.ARRAYFLOAT64:<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        return Dataset.ARRAYFLOAT64;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                case Dataset.DATE:<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                case Dataset.STRING:<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                case Dataset.RGB:<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                case Dataset.OBJECT:<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        return otype;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                }<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                throw new IllegalArgumentException("Unsupported dataset type");<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>        /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * @param otype<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @return elemental dataset type available for given dataset type<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public static int getElementalDType(final int otype) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                switch (otype) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                case Dataset.COMPLEX64:<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        return Dataset.FLOAT32;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                case Dataset.COMPLEX128:<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        return Dataset.FLOAT64;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                case Dataset.ARRAYINT8:<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        return Dataset.INT8;<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                case Dataset.ARRAYINT16:<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                case Dataset.RGB:<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        return Dataset.INT16;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                case Dataset.ARRAYINT32:<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return Dataset.INT32;<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                case Dataset.ARRAYINT64:<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        return Dataset.INT64;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                case Dataset.ARRAYFLOAT32:<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        return Dataset.FLOAT32;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                case Dataset.ARRAYFLOAT64:<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        return Dataset.FLOAT64;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                default:<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                        return otype;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         * @param comp<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * @return true if supported<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         */<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        public static boolean isClassSupportedAsElement(Class&lt;? extends Object&gt; comp) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                return comp.isPrimitive() || Number.class.isAssignableFrom(comp) || comp.equals(Boolean.class)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                || comp.equals(Complex.class) || comp.equals(String.class) || comp.equals(Date.class);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @param dtype<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * @return number of elements per item<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public static int getElementsPerItem(final int dtype) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                switch (dtype) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                case Dataset.ARRAYINT8:<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                case Dataset.ARRAYINT16:<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                case Dataset.ARRAYINT32:<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                case Dataset.ARRAYINT64:<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                case Dataset.ARRAYFLOAT32:<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                case Dataset.ARRAYFLOAT64:<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        throw new UnsupportedOperationException("Multi-element type unsupported");<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                case Dataset.COMPLEX64:<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                case Dataset.COMPLEX128:<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        return 2;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                case Dataset.RGB:<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        return 3;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return 1;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * @param dtype<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @return length of single item in bytes<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static int getItemBytes(final int dtype) {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return getItemBytes(dtype, getElementsPerItem(dtype));<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @param dtype<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * @param isize<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         *            number of elements in an item<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @return length of single item in bytes<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        public static int getItemBytes(final int dtype, final int isize) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                int size;<a name="line.451"></a>
+<span class="sourceLineNo">452</span><a name="line.452"></a>
+<span class="sourceLineNo">453</span>                switch (dtype) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                case Dataset.BOOL:<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                        size = 1; // How is this defined?<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                        break;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                case Dataset.INT8:<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                case Dataset.ARRAYINT8:<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        size = Byte.SIZE / 8;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                        break;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                case Dataset.INT16:<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                case Dataset.ARRAYINT16:<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                case Dataset.RGB:<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        size = Short.SIZE / 8;<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        break;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                case Dataset.INT32:<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                case Dataset.ARRAYINT32:<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        size = Integer.SIZE / 8;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        break;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                case Dataset.INT64:<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                case Dataset.ARRAYINT64:<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        size = Long.SIZE / 8;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        break;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                case Dataset.FLOAT32:<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                case Dataset.ARRAYFLOAT32:<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                case Dataset.COMPLEX64:<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                        size = Float.SIZE / 8;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        break;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                case Dataset.FLOAT64:<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                case Dataset.ARRAYFLOAT64:<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                case Dataset.COMPLEX128:<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        size = Double.SIZE / 8;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        break;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                default:<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                        size = 0;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                        break;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                }<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>                return size * isize;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public static boolean toBoolean(final Object b) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                if (b instanceof Number) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        return ((Number) b).longValue() != 0;<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                } else if (b instanceof Boolean) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        return ((Boolean) b).booleanValue();<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                } else if (b instanceof Complex) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        return ((Complex) b).getReal() != 0;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                } else if (b instanceof Dataset) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        Dataset db = (Dataset) b;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        if (db.getSize() != 1) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                logger.error("Given dataset must have only one item");<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        return db.getBoolean();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                } else if (b instanceof IDataset) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        IDataset db = (IDataset) b;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                        if (db.getSize() != 1) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                logger.error("Given dataset must have only one item");<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        }<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        return db.getBoolean(new int[db.getRank()]);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                } else {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        logger.error("Argument is of unsupported class");<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                }<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>        /**<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param d<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         * @return returns a long or 0 if d is NaN or infinite<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * @since 2.1<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         */<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        public static final long toLong(double d) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        return 0l;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return (long) d;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        }<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span>        /**<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         * @param d<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         * @return returns a long or 0 if d is NaN or infinite<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * @since 2.1<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>        public static final long toLong(float d) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                if (Float.isInfinite(d) || Float.isNaN(d))<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        return 0l;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return (long) d;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        public static long toLong(final Object b) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                if (b instanceof Number) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        final Number n = (Number) b;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                        return (n instanceof Double || n instanceof Float) ? toLong(n.doubleValue()) : n.longValue();<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                } else if (b instanceof Boolean) {<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        return ((Boolean) b).booleanValue() ? 1 : 0;<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                } else if (b instanceof Complex) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                        return (long) ((Complex) b).getReal();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                } else if (b instanceof Dataset) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        Dataset db = (Dataset) b;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        if (db.getSize() != 1) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                logger.error("Given dataset must have only one item");<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return db.getLong();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                } else if (b instanceof IDataset) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        IDataset db = (IDataset) b;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                        if (db.getSize() != 1) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                logger.error("Given dataset must have only one item");<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                        }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                        return db.getLong(new int[db.getRank()]);<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                } else {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                        logger.error("Argument is of unsupported class");<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>        public static double toReal(final Object b) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                if (b instanceof Number) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        return ((Number) b).doubleValue();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                } else if (b instanceof Boolean) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                        return ((Boolean) b).booleanValue() ? 1 : 0;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                } else if (b instanceof Complex) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return ((Complex) b).getReal();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                } else if (b.getClass().isArray()) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        if (Array.getLength(b) == 0)<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                return 0;<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        return toReal(Array.get(b, 0));<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                } else if (b instanceof Dataset) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                        Dataset db = (Dataset) b;<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        if (db.getSize() != 1) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                logger.error("Given dataset must have only one item");<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                        }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        return db.getDouble();<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                } else if (b instanceof IDataset) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                        IDataset db = (Dataset) b;<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                        if (db.getSize() != 1) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                logger.error("Given dataset must have only one item");<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        return db.getDouble(new int[db.getRank()]);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                } else {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        logger.error("Argument is of unsupported class");<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>        public static double toImag(final Object b) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                if (b instanceof Number) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        return 0;<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                } else if (b instanceof Boolean) {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        return 0;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                } else if (b instanceof Complex) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        return ((Complex) b).getImaginary();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                } else if (b.getClass().isArray()) {<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        if (Array.getLength(b) &lt; 2)<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                                return 0;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return toReal(Array.get(b, 1));<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                } else if (b instanceof Dataset) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        Dataset db = (Dataset) b;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        if (db.getSize() != 1) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                logger.error("Given dataset must have only one item");<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        return toImag(db.getObjectAbs(db.getOffset()));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                } else if (b instanceof IDataset) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                        IDataset db = (Dataset) b;<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        if (db.getSize() != 1) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                logger.error("Given dataset must have only one item");<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        return toImag(db.getObject(new int[db.getRank()]));<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                        logger.error("Argument is of unsupported class");<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public static double[] toDoubleArray(final Object b, final int itemSize) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                double[] result = null;<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>                // ensure array is of given length<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                if (b instanceof Number) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        result = new double[itemSize];<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                        final double val = ((Number) b).doubleValue();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                result[i] = val;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        }<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                } else if (b instanceof double[]) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        final double[] old = (double[]) b;<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        result = old;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        final int ilen = old.length;<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        if (ilen &lt; itemSize) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                result = new double[itemSize];<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                        result[i] = old[i];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        result = new double[itemSize];<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        int ilen = jl.size();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        }<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        ilen = Math.min(itemSize, ilen);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                result[i] = toReal(jl.get(i));<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                } else if (b.getClass().isArray()) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        result = new double[itemSize];<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        int ilen = Array.getLength(b);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        ilen = Math.min(itemSize, ilen);<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                result[i] = ((Number) Array.get(b, i)).doubleValue();<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        }<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                } else if (b instanceof Complex) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        if (itemSize &gt; 2) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        Complex cb = (Complex) b;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        switch (itemSize) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        default:<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        case 0:<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                break;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        case 1:<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                result = new double[] {cb.getReal()};<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                break;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        case 2:<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                result = new double[] {cb.getReal(), cb.getImaginary()};<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                break;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                } else if (b instanceof Dataset) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        Dataset db = (Dataset) b;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        if (db.getSize() != 1) {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                logger.error("Given dataset must have only one item");<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                        return toDoubleArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                } else if (b instanceof IDataset) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        IDataset db = (Dataset) b;<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        if (db.getSize() != 1) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                logger.error("Given dataset must have only one item");<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        }<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        return toDoubleArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                }<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                return result;<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        }<a name="line.708"></a>
+<span class="sourceLineNo">709</span><a name="line.709"></a>
+<span class="sourceLineNo">710</span>        public static float[] toFloatArray(final Object b, final int itemSize) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                float[] result = null;<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                if (b instanceof Number) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        result = new float[itemSize];<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        final float val = ((Number) b).floatValue();<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        for (int i = 0; i &lt; itemSize; i++)<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                result[i] = val;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                } else if (b instanceof float[]) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        final float[] old = (float[]) b;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        result = old;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        final int ilen = old.length;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                        if (ilen &lt; itemSize) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                result = new float[itemSize];<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        result[i] = old[i];<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                } else if (b instanceof double[]) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        final double[] old = (double[]) b;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        result = new float[itemSize];<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                                result[i] = (float) old[i];<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        }<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        result = new float[itemSize];<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        int ilen = jl.size();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        ilen = Math.min(itemSize, ilen);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                result[i] = (float) toReal(jl.get(i));<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                } else if (b.getClass().isArray()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        result = new float[itemSize];<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                        int ilen = Array.getLength(b);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        }<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                        ilen = Math.min(itemSize, ilen);<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                result[i] = ((Number) Array.get(b, i)).floatValue();<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                } else if (b instanceof Complex) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        if (itemSize &gt; 2) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        Complex cb = (Complex) b;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        switch (itemSize) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        default:<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        case 0:<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                break;<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        case 1:<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                                result = new float[] {(float) cb.getReal()};<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                break;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        case 2:<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                result = new float[] {(float) cb.getReal(), (float) cb.getImaginary()};<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                break;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                } else if (b instanceof Dataset) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                        Dataset db = (Dataset) b;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        if (db.getSize() != 1) {<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                logger.error("Given dataset must have only one item");<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        }<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        return toFloatArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                } else if (b instanceof IDataset) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        IDataset db = (Dataset) b;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        if (db.getSize() != 1) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                logger.error("Given dataset must have only one item");<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        return toFloatArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return result;<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        public static long[] toLongArray(final Object b, final int itemSize) {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                long[] result = null;<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>                if (b instanceof Number) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        result = new long[itemSize];<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        final long val = toLong(b);<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                result[i] = val;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                } else if (b instanceof long[]) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        final long[] old = (long[]) b;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        result = old;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                        final int ilen = result.length;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                        if (ilen &lt; itemSize) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                result = new long[itemSize];<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        result[i] = old[i];<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                } else if (b instanceof double[]) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                        final double[] old = (double[]) b;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        result = new long[itemSize];<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                                result[i] = toLong(old[i]);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        }<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        result = new long[itemSize];<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        int ilen = jl.size();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        ilen = Math.min(itemSize, ilen);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                result[i] = toLong(jl.get(i));<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                } else if (b.getClass().isArray()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        result = new long[itemSize];<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                        int ilen = Array.getLength(b);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                        }<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        ilen = Math.min(itemSize, ilen);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                result[i] = toLong(Array.get(b, i));<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                } else if (b instanceof Complex) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        if (itemSize &gt; 2) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                        Complex cb = (Complex) b;<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        switch (itemSize) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        default:<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                        case 0:<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                break;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                        case 1:<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                result = new long[] {(long) cb.getReal()};<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                break;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        case 2:<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                result = new long[] {(long) cb.getReal(), (long) cb.getImaginary()};<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                break;<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                } else if (b instanceof Dataset) {<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        Dataset db = (Dataset) b;<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        if (db.getSize() != 1) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                logger.error("Given dataset must have only one item");<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        return toLongArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                } else if (b instanceof IDataset) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                        IDataset db = (Dataset) b;<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        if (db.getSize() != 1) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                logger.error("Given dataset must have only one item");<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                        return toLongArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                return result;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        }<a name="line.877"></a>
+<span class="sourceLineNo">878</span><a name="line.878"></a>
+<span class="sourceLineNo">879</span>        public static int[] toIntegerArray(final Object b, final int itemSize) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                int[] result = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>                if (b instanceof Number) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        result = new int[itemSize];<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        final int val = (int) toLong(b);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                result[i] = val;<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        }<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                } else if (b instanceof int[]) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final int[] old = (int[]) b;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                        result = old;<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        final int ilen = result.length;<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                        if (ilen &lt; itemSize) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                result = new int[itemSize];<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                        result[i] = old[i];<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                } else if (b instanceof double[]) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        final double[] old = (double[]) b;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        result = new int[itemSize];<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                result[i] = (int) toLong(old[i]);<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        }<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        result = new int[itemSize];<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        int ilen = jl.size();<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                        }<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                        ilen = Math.min(itemSize, ilen);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                result[i] = (int) toLong(jl.get(i));<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                } else if (b.getClass().isArray()) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        result = new int[itemSize];<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        int ilen = Array.getLength(b);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        ilen = Math.min(itemSize, ilen);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                result[i] = (int) toLong(Array.get(b, i));<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                } else if (b instanceof Complex) {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        if (itemSize &gt; 2) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        Complex cb = (Complex) b;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        switch (itemSize) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        default:<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        case 0:<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        case 1:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                result = new int[] {(int) cb.getReal()};<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                break;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        case 2:<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                result = new int[] {(int) cb.getReal(), (int) cb.getImaginary()};<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                break;<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                } else if (b instanceof Dataset) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        Dataset db = (Dataset) b;<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        if (db.getSize() != 1) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                logger.error("Given dataset must have only one item");<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        return toIntegerArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                } else if (b instanceof IDataset) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        IDataset db = (Dataset) b;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                        if (db.getSize() != 1) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                logger.error("Given dataset must have only one item");<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        return toIntegerArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span><a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return result;<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>        public static short[] toShortArray(final Object b, final int itemSize) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                short[] result = null;<a name="line.965"></a>
+<span class="sourceLineNo">966</span><a name="line.966"></a>
+<span class="sourceLineNo">967</span>                if (b instanceof Number) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        result = new short[itemSize];<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        final short val = (short) toLong(b);<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                result[i] = val;<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        }<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                } else if (b instanceof short[]) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final short[] old = (short[]) b;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        result = old;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        final int ilen = result.length;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        if (ilen &lt; itemSize) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                result = new short[itemSize];<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        result[i] = old[i];<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                }<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                } else if (b instanceof double[]) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        final double[] old = (double[]) b;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        result = new short[itemSize];<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                result[i] = (short) toLong(old[i]);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                        result = new short[itemSize];<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        int ilen = jl.size();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        }<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                        ilen = Math.min(itemSize, ilen);<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                result[i] = (short) toLong(jl.get(i));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                } else if (b.getClass().isArray()) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        result = new short[itemSize];<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        int ilen = Array.getLength(b);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                        }<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                result[i] = (short) toLong(Array.get(b, i));<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                } else if (b instanceof Complex) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        if (itemSize &gt; 2) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                        }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        Complex cb = (Complex) b;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        switch (itemSize) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                        default:<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                        case 0:<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                break;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        case 1:<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                result = new short[] {(short) cb.getReal()};<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                break;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        case 2:<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                result = new short[] {(short) cb.getReal(), (short) cb.getImaginary()};<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                break;<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                } else if (b instanceof Dataset) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                        Dataset db = (Dataset) b;<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        if (db.getSize() != 1) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                logger.error("Given dataset must have only one item");<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        return toShortArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                } else if (b instanceof IDataset) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        IDataset db = (Dataset) b;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                        if (db.getSize() != 1) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                logger.error("Given dataset must have only one item");<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        return toShortArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                return result;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span><a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        public static byte[] toByteArray(final Object b, final int itemSize) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                byte[] result = null;<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span><a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                if (b instanceof Number) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        result = new byte[itemSize];<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                        final byte val = (byte) toLong(b);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        for (int i = 0; i &lt; itemSize; i++) {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                result[i] = val;<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                } else if (b instanceof byte[]) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final byte[] old = (byte[]) b;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        result = old;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        final int ilen = result.length;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                        if (ilen &lt; itemSize) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                result = new byte[itemSize];<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                for (int i = 0; i &lt; ilen; i++) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                        result[i] = old[i];<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                }<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        }<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                } else if (b instanceof double[]) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final double[] old = (double[]) b;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        final int ilen = Math.min(itemSize, old.length);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        result = new byte[itemSize];<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                result[i] = (byte) toLong(old[i]);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        result = new byte[itemSize];<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        int ilen = jl.size();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        if (ilen &gt; 0 &amp;&amp; !(jl.get(0) instanceof Number)) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                result[i] = (byte) toLong(jl.get(i));<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                } else if (b.getClass().isArray()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        result = new byte[itemSize];<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        int ilen = Array.getLength(b);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        if (ilen &gt; 0 &amp;&amp; !(Array.get(b, 0) instanceof Number)) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                logger.error("Given array was not of a numerical primitive type");<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                throw new IllegalArgumentException("Given array was not of a numerical primitive type");<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        ilen = Math.min(itemSize, ilen);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                result[i] = (byte) toLong(Array.get(b, i));<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                } else if (b instanceof Complex) {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                        if (itemSize &gt; 2) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                logger.error("Complex number will not fit in compound dataset");<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                throw new IllegalArgumentException("Complex number will not fit in compound dataset");<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                        }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        Complex cb = (Complex) b;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        switch (itemSize) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        default:<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        case 0:<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                        case 1:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                result = new byte[] {(byte) cb.getReal()};<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                break;<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        case 2:<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                result = new byte[] {(byte) cb.getReal(), (byte) cb.getImaginary()};<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                break;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                } else if (b instanceof Dataset) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                        Dataset db = (Dataset) b;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                        if (db.getSize() != 1) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                logger.error("Given dataset must have only one item");<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                        }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                        return toByteArray(db.getObjectAbs(db.getOffset()), itemSize);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                } else if (b instanceof IDataset) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                        IDataset db = (Dataset) b;<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                        if (db.getSize() != 1) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                logger.error("Given dataset must have only one item");<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        return toByteArray(db.getObject(new int[db.getRank()]), itemSize);<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span><a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                return result;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>        }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>        public static Object fromDoublesToBiggestPrimitives(double[] x, int dtype) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                switch (dtype) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                case Dataset.BOOL:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                case Dataset.INT8:<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                case Dataset.INT16:<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                case Dataset.INT32:<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                        int[] i32 = new int[x.length];<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                i32[i] = (int) (long) x[i];<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        return i32;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.INT64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        long[] i64 = new long[x.length];<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                i64[i] = (long) x[i];<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        return i64;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                case Dataset.FLOAT32:<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        float[] f32 = new float[x.length];<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        for (int i = 0; i &lt; x.length; i++)<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                f32[i] = (float) x[i];<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        return f32;<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                case Dataset.FLOAT64:<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        return x;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                return null;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span><a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>        /**<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>         * @param x<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>         * @param dtype<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>         * @return biggest native primitive if integer (should test for 64bit?)<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>         */<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>        public static Number fromDoubleToBiggestNumber(double x, int dtype) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                switch (dtype) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                case Dataset.BOOL:<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                case Dataset.INT8:<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                case Dataset.INT16:<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                case Dataset.INT32:<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                        return Integer.valueOf((int) (long) x);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                case Dataset.INT64:<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                        return Long.valueOf((long) x);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                case Dataset.FLOAT32:<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                        return Float.valueOf((float) x);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                case Dataset.FLOAT64:<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        return Double.valueOf(x);<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                }<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                return null;<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>        }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>        /**<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param b<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @return length of object<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         */<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public static final int getLength(final Object b) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                if (b instanceof Number) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        return 1;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                } else if (b instanceof Complex) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        return 1;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                } else if (b instanceof List&lt;?&gt;) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) b;<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        return jl.size();<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                } else if (b.getClass().isArray()) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                        return Array.getLength(b);<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                } else if (b instanceof IDataset) {<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                        IDataset db = (Dataset) b;<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        return db.getSize();<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                throw new IllegalArgumentException("Cannot find length as object not supported");<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>        }<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span><a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>        /**<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>         * @param dtype<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>         * @return (boxed) class of constituent element<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>         */<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>        public static Class&lt;?&gt; getElementClass(final int dtype) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (dtype) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        return Boolean.class;<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                case Dataset.INT8:<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                case Dataset.ARRAYINT8:<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        return Byte.class;<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                case Dataset.INT16:<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                case Dataset.ARRAYINT16:<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                case Dataset.RGB:<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        return Short.class;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                case Dataset.INT32:<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                case Dataset.ARRAYINT32:<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                        return Integer.class;<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                case Dataset.INT64:<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                case Dataset.ARRAYINT64:<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        return Long.class;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                case Dataset.FLOAT32:<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                case Dataset.ARRAYFLOAT32:<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        return Float.class;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                case Dataset.FLOAT64:<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                case Dataset.ARRAYFLOAT64:<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        return Double.class;<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                case Dataset.COMPLEX64:<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        return Float.class;<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                case Dataset.COMPLEX128:<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                        return Double.class;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                case Dataset.STRING:<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        return String.class;<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                case Dataset.DATE:<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        return Date.class;<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                }<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                return Object.class;<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>        }<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span><a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>}<a name="line.1243"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DataEvent.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DataEvent.html
new file mode 100644
index 0000000..b9f3443
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DataEvent.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.EventObject;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * Event fired to diseminate information about a dataset changing.<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * For instance if an image represents a live stream.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * <a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This event is passed over web-sockets. To keep dependencies to a <a name="line.21"></a>
+<span class="sourceLineNo">022</span> * minimum and since it is really simple, we have added an encode and<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * decode to JSON without the need for an API like jackson.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class DataEvent extends EventObject {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        <a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * <a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private static final long serialVersionUID = 751125872769278449L;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private int[]  shape;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        <a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * Optionally, we can indicate where the file path was.<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private String filePath;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * The name of the dataset, may be ""<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        private String name;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public DataEvent() {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                this("", new int[]{1});<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Creates an event to notify that this data has changed.<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param name<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public DataEvent(String name, int[] shape) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                super(name);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                this.shape = shape;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                this.name  = name;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public String getSource() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                return (String)super.getSource();<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        }<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        <a name="line.62"></a>
+<span class="sourceLineNo">063</span>        public String getName() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                return getSource();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        <a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public void setName(String name) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                this.name = name;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        <a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public int[] getShape() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return shape;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        public void setShape(int[] shape) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                this.shape = shape;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public String getFilePath() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                return filePath;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public void setFilePath(String filePath) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                this.filePath = filePath;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>        /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * Encodes event to string<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @return encoded string<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        public String encode() {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                final StringBuilder buf = new StringBuilder();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                buf.append("{");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                buf.append("\"name\" : \"");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                buf.append(getName());<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                buf.append("\"");<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                buf.append(", \"shape\" : ");<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                buf.append(Arrays.toString(shape));<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                <a name="line.99"></a>
+<span class="sourceLineNo">100</span>                buf.append(", \"filepath\" : \"");<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                buf.append(getFilePath());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                buf.append("\"");<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                <a name="line.103"></a>
+<span class="sourceLineNo">104</span>                buf.append("}");<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                return buf.toString();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        <a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * Decodes from String for instance {"name" : "Tests", "shape" : [1024, 1024], "filepath" : "C:/tmp/Fred.txt"}<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @return DataEvent<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public static DataEvent decode(String json) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                <a name="line.113"></a>
+<span class="sourceLineNo">114</span>                String name     = getValue(json, ".*\"name\" \\: \"([^\"]+)\".*");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                String filepath = getValue(json, ".*\"filepath\" \\: \"([^\"]+)\".*");<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                String shape    = getValue(json, ".*\"shape\" \\: \\[([^\\]]+)\\].*");<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>                DataEvent ret = new DataEvent(name, getArray(shape));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                if (filepath!=null &amp;&amp; !"null".equals(filepath)) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        ret.setFilePath(filepath);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                return ret;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>        private static String getValue(String json, String regex) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                Matcher matcher = Pattern.compile(regex).matcher(json);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if (matcher.matches()) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return matcher.group(1);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                throw new RuntimeException(regex+" unmatched in "+json);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        private static int[] getArray(String value) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                String[] split = value.split(",");<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                int[] ret      = new int[split.length];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                for (int i = 0; i &lt; split.length; i++) ret[i] = Integer.parseInt(split[i].trim());<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                return ret;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>        @Override<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        public int hashCode() {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                final int prime = 31;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                int result = 1;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                result = prime * result + ((filePath == null) ? 0 : filePath.hashCode());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                result = prime * result + ((name == null) ? 0 : name.hashCode());<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                result = prime * result + Arrays.hashCode(shape);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                return result;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>        @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public boolean equals(Object obj) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (this == obj)<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        return true;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                if (obj == null)<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return false;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (getClass() != obj.getClass())<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        return false;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                DataEvent other = (DataEvent) obj;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (filePath == null) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        if (other.filePath != null)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                                return false;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                } else if (!filePath.equals(other.filePath))<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return false;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                if (name == null) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        if (other.name != null)<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                                return false;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                } else if (!name.equals(other.name))<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        return false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                if (!Arrays.equals(shape, other.shape))<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        return false;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                return true;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>}<a name="line.175"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DataListenerDelegate.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DataListenerDelegate.html
new file mode 100644
index 0000000..d14dd77
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DataListenerDelegate.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Collections;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.Set;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * Class used by DynamicDataset to delegate<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class DataListenerDelegate {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private Set&lt;IDataListener&gt; listeners;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public DataListenerDelegate() {<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                listeners = Collections.newSetFromMap(new ConcurrentHashMap&lt;IDataListener, Boolean&gt;());<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        }<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public void addDataListener(IDataListener l) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                listeners.add(l);<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public void removeDataListener(IDataListener l) {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                listeners.remove(l);<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public void fire(DataEvent evt) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                for (IDataListener listener : listeners) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                        listener.dataChangePerformed(evt);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                }<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public boolean hasDataListeners() {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                return listeners.size() &gt; 0;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        public void clear() {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                listeners.clear();<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>}<a name="line.49"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Dataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Dataset.html
new file mode 100644
index 0000000..9a4a2ca
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Dataset.html
@@ -0,0 +1,1397 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.IMonitor;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * &lt;p&gt;<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * Interface for our implementation of dataset that adds a lot of extra functionality.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * &lt;/p&gt;<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * &lt;p&gt;<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * &lt;b&gt;Warning:&lt;/b&gt;<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * It is important to note that methods (get*Abs() and set*Abs()) which use the absolute<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * index &lt;emph&gt;must&lt;/emph&gt; be used with care. In (sliced) views of datasets, neighbouring<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * positions do not necessarily correspond to contiguous indexes. This is also the case<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * with multi-element (or compound) items. Therefore index iterators should be used in<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * conjunction with these methods unless the dataset can be proven to be not a view or<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * be a wholly contiguous slice of a dataset; a copy or new dataset satisfies this criterion.<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * &lt;/p&gt;<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public interface Dataset extends IDataset {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * Boolean<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public static final int BOOL = 0;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * Signed 8-bit integer<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public static final int INT8 = 1;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Signed 16-bit integer<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public static final int INT16 = 2;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Signed 32-bit integer<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public static final int INT32 = 3;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * Integer (same as signed 32-bit integer)<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public static final int INT = INT32;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        /**<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * Signed 64-bit integer<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        public static final int INT64 = 4;<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        /**<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * 32-bit floating point<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public static final int FLOAT32 = 5;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * 64-bit floating point<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public static final int FLOAT64 = 6;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * Floating point (same as 64-bit floating point)<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        public static final int FLOAT = FLOAT64;<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * 64-bit complex floating point (real and imaginary parts are 32-bit floats)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public static final int COMPLEX64 = 7;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * 128-bit complex floating point (real and imaginary parts are 64-bit floats)<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public static final int COMPLEX128 = 8;<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Complex floating point (same as 64-bit floating point)<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        public static final int COMPLEX = COMPLEX128;<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>        /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * String<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public static final int STRING = 9;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        <a name="line.97"></a>
+<span class="sourceLineNo">098</span>        /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * Object<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public static final int OBJECT = 10;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        /**<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * Date<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        public static final int DATE = 11;<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        static final int ARRAYMUL = 100;<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>        /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * Array of signed 8-bit integers<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public static final int ARRAYINT8 = ARRAYMUL * INT8;<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        /**<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * Array of signed 16-bit integers<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        public static final int ARRAYINT16 = ARRAYMUL * INT16;<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>        /**<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * Array of three signed 16-bit integers for RGB values<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        public static final int RGB = ARRAYINT16 + 3;<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>        /**<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * Array of signed 32-bit integers<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        public static final int ARRAYINT32 = ARRAYMUL * INT32;<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>        /**<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * Array of signed 64-bit integers<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         */<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        public static final int ARRAYINT64 = ARRAYMUL * INT64;<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Array of 32-bit floating points<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        public static final int ARRAYFLOAT32 = ARRAYMUL * FLOAT32;<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>        /**<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         * Array of 64-bit floating points<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         */<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public static final int ARRAYFLOAT64 = ARRAYMUL * FLOAT64;<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>        /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * Update this when there are any serious changes to API<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        static final long serialVersionUID = -6891075135217265625L;<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>        /**<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         * datasets and null for null datasets<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * <a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @return reference of shape of dataset<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public int[] getShapeRef();<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>        /**<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * @return type of dataset item<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         */<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        public int getDType();<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>        /**<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @return a stride array (can be null)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        public int[] getStrides();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>        /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * @return offset where dataset view begins<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         */<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        public int getOffset();<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>        /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @return true if dataset has elements which are floating point values<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        public boolean hasFloatingPointElements();<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * @return number of bytes used<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         */<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        public int getNbytes();<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @return the buffer that backs the dataset<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        public Serializable getBuffer();<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>        /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * Set the buffer that backs the dataset and its shape<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * &lt;p&gt;This is very, very &lt;b&gt;dangerous&lt;/b&gt;. Please use carefully<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * @param buffer (can be null to leave unchanged)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param shape (can be null to leave unchanged)<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        public void overrideInternal(Serializable buffer, int... shape);<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>        /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * This is a &lt;b&gt;synchronized&lt;/b&gt; version of the clone method<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * <a name="line.198"></a>
+<span class="sourceLineNo">199</span>         * @return a copy of dataset<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public Dataset synchronizedCopy();<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        /**<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @param deepCopyMetadata if true then deep-copy metadata<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @return whole view of dataset (i.e. data buffer is shared)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        public Dataset getView(boolean deepCopyMetadata);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>        /**<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @return view of dataset that is broadcasted to given shape<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         */<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        public Dataset getBroadcastView(int... shape);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>        /**<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @param showData<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @return string representation<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         */<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        public String toString(boolean showData);<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        @Override<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public Dataset squeezeEnds();<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        @Override<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        public Dataset squeeze();<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public Dataset squeeze(boolean onlyFromEnds);<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>        @Override<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        public Dataset clone();<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>        /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         * This method allows anything that dirties the dataset to clear various metadata values<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * so that the other methods can work correctly.<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        public void setDirty();<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>        /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * This method calculates the n-dimensional position in the dataset of<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * the given index in the data array<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * <a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @param n<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *            The index in the array<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return the corresponding [a,b,...,n] position in the dataset<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        public int[] getNDPosition(int n);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        /**<a name="line.248"></a>
+<span class="sourceLineNo">249</span>         * This method calculates the index in the data array that corresponds to<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * the given n-dimensional position<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * <a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @param n<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         *            the integer array specifying the n-D position<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @return the index on the data array corresponding to that location<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         */<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        public int get1DIndex(final int... n);<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>        /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * Check that axis is in range [-rank,rank)<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * <a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param axis<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return sanitized axis in range [0, rank)<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        public int checkAxis(int axis);<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>        /**<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * This method takes a dataset and checks its shape against the current dataset. If they are<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * both of the same size, then this returns true otherwise it returns false.<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * <a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * @param g<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         *            The dataset to be compared<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @return true if shapes are compatible<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         */<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        public boolean isCompatibleWith(ILazyDataset g);<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        /**<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         * This method takes a dataset and checks its shape against the current dataset. If they are<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * both of the same size, then this returns with no error, if there is a problem, then an error<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * is thrown.<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         * <a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * @param g<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         *            The dataset to be compared<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * @throws IllegalArgumentException<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         *             This will be thrown if there is a problem with the compatibility<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         */<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        public void checkCompatibility(ILazyDataset g) throws IllegalArgumentException;<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>        /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * Returns new dataset with new shape but old data if possible, otherwise a copy is made<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * <a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @param shape<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         *            new shape<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public Dataset reshape(int... shape);<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>        /**<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @return true if dataset is complex<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        public boolean isComplex();<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * @return real part of dataset (if necessary, as new dataset)<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         * @since 2.0<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         */<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        public Dataset getRealPart();<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        /**<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @return real part of dataset as a view<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         */<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        public Dataset getRealView();<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        /**<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         * Get the error array from the dataset of same shape. This will create a new dataset<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * if the error set was of lower rank<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         *<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @return the dataset which contains the error information (can be null)<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @since 2.0<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        public Dataset getErrors();<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>        /**<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * Get the (un-broadcasted) dataset that backs the (squared) error data<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         *<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @return the dataset which contains the (squared) error information (can be null)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         */<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        public Dataset getErrorBuffer();<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>        /**<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         * Set the buffer that backs the (squared) error data<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         *<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * @buffer the buffer which contains the (squared) error information (can be null)<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        public void setErrorBuffer(Serializable buffer);<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>        /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * Copy and cast a dataset<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * <a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param dtype<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         *            dataset type<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * @return a converted copy of the dataset<a name="line.341"></a>
+<span class="sourceLineNo">342</span>         */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        public Dataset copy(int dtype);<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>        /**<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         * Copy and cast a dataset<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         * <a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * @param clazz dataset class<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * @return a converted copy of the dataset<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         */<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        public &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * Cast a dataset<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * <a name="line.355"></a>
+<span class="sourceLineNo">356</span>         * @param dtype<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         *            dataset type<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         * @return a converted dataset<a name="line.358"></a>
+<span class="sourceLineNo">359</span>         */<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        public Dataset cast(int dtype);<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>        /**<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * Cast a dataset<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         * <a name="line.364"></a>
+<span class="sourceLineNo">365</span>         * @param clazz dataset class<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         * @return a converted dataset<a name="line.366"></a>
+<span class="sourceLineNo">367</span>         */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        public &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz);<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>        /**<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * Cast a dataset<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * <a name="line.372"></a>
+<span class="sourceLineNo">373</span>         * @param repeat<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * @param dtype<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         *            dataset type<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * @param isize<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         *            item size<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * @return a converted dataset<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         */<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        public Dataset cast(boolean repeat, int dtype, int isize);<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>        /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         * Generate an index dataset for current dataset<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * <a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * @return an index dataset<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public IntegerDataset getIndices();<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>        @Override<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public Dataset getTransposedView(int... axes);<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>        /**<a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * See {@link #getTransposedView}<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @return remapped copy of data<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         */<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        public Dataset transpose(int... axes);<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>        /**<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         * Swap two axes in dataset<a name="line.399"></a>
+<span class="sourceLineNo">400</span>         * <a name="line.400"></a>
+<span class="sourceLineNo">401</span>         * @param axis1<a name="line.401"></a>
+<span class="sourceLineNo">402</span>         * @param axis2<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * @return swapped view of dataset<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public Dataset swapAxes(int axis1, int axis2);<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>        /**<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         * Flatten shape<a name="line.408"></a>
+<span class="sourceLineNo">409</span>         * <a name="line.409"></a>
+<span class="sourceLineNo">410</span>         * @return a flattened dataset which is a view if dataset is contiguous otherwise is a copy<a name="line.410"></a>
+<span class="sourceLineNo">411</span>         */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public Dataset flatten();<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * Get unique items<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * @return a sorted dataset of unique items<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        public Dataset getUniqueItems();<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        /**<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @param withPosition<a name="line.421"></a>
+<span class="sourceLineNo">422</span>         *            set true if position is needed<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @return an IndexIterator tailored for this dataset<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         */<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        public IndexIterator getIterator(boolean withPosition);<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>        /**<a name="line.427"></a>
+<span class="sourceLineNo">428</span>         * @return an IndexIterator tailored for this dataset<a name="line.428"></a>
+<span class="sourceLineNo">429</span>         */<a name="line.429"></a>
+<span class="sourceLineNo">430</span>        public IndexIterator getIterator();<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span>        /**<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         * @param axes axes to omit from iterator<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * @return a PositionIterator that misses out axes<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public PositionIterator getPositionIterator(int... axes);<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>        /**<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @param start<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         *            specifies the starting indexes<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @param stop<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         *            specifies the stopping indexes (nb, these are &lt;b&gt;not&lt;/b&gt; included in the slice)<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         * @param step<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         *            specifies the steps in the slice<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         */<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public IndexIterator getSliceIterator(int[] start, int[] stop, int[] step);<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>        /**<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * @param slice an n-D slice<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * @return an slice iterator that operates like an IndexIterator<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @since 2.1<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        public IndexIterator getSliceIterator(SliceND slice);<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        /**<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * Get a slice iterator that is defined by a starting position and a set of axes to include<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         * <a name="line.458"></a>
+<span class="sourceLineNo">459</span>         * @param pos<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         * @param axes<a name="line.460"></a>
+<span class="sourceLineNo">461</span>         *            to include<a name="line.461"></a>
+<span class="sourceLineNo">462</span>         * @return slice iterator<a name="line.462"></a>
+<span class="sourceLineNo">463</span>         */<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        public SliceIterator getSliceIteratorFromAxes(int[] pos, boolean[] axes);<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        /**<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         * Copy content from axes in given position to array<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         * <a name="line.468"></a>
+<span class="sourceLineNo">469</span>         * @param pos<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         *            - null means position at origin<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @param axes<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         *            - true means copy<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param dest<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public void copyItemsFromAxes(int[] pos, boolean[] axes, Dataset dest);<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>        /**<a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * Set content on axes in given position to values in array<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         * <a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * @param pos<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         * @param axes<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         *            - true means copy<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         * @param src<a name="line.483"></a>
+<span class="sourceLineNo">484</span>         */<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        public void setItemsOnAxes(int[] pos, boolean[] axes, Object src);<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>        /**<a name="line.487"></a>
+<span class="sourceLineNo">488</span>         * Get an iterator that visits every item in this dataset where the corresponding item in<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * choice dataset is true<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * <a name="line.490"></a>
+<span class="sourceLineNo">491</span>         * @param choice<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @return an iterator of dataset that visits items chosen by given choice dataset<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        public BooleanIterator getBooleanIterator(Dataset choice);<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        /**<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * Get an iterator that visits every item in this dataset where the corresponding item in<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         * choice dataset is given by value<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * <a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * @param choice<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @param value<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @return an iterator of dataset that visits items chosen by given choice dataset<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         */<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public BooleanIterator getBooleanIterator(Dataset choice, boolean value);<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        /**<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * This is modelled after the NumPy get item with a condition specified by a boolean dataset<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         *<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         * @param selection<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         *            a boolean dataset of same shape to use for selecting items<a name="line.510"></a>
+<span class="sourceLineNo">511</span>         * @return The new selected dataset<a name="line.511"></a>
+<span class="sourceLineNo">512</span>         */<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        public Dataset getByBoolean(Dataset selection);<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        /**<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         * This is modelled after the NumPy set item with a condition specified by a boolean dataset<a name="line.516"></a>
+<span class="sourceLineNo">517</span>         *<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * @param obj<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         *            specifies the object used to set the selected items<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param selection<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         *            a boolean dataset of same shape to use for selecting items<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * <a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * @return The dataset with modified content<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         */<a name="line.524"></a>
+<span class="sourceLineNo">525</span>        public Dataset setByBoolean(Object obj, Dataset selection);<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>        /**<a name="line.527"></a>
+<span class="sourceLineNo">528</span>         * This is modelled after the NumPy get item with an index dataset<a name="line.528"></a>
+<span class="sourceLineNo">529</span>         *<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * @param index<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         *            an integer dataset<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         * @return The new selected dataset by indices<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         */<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        public Dataset getBy1DIndex(IntegerDataset index);<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        /**<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * This is modelled after the NumPy get item with an array of indexing objects<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         *<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * @param indexes<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         *            an array of integer dataset, boolean dataset, slices or null entries (same as<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         *            full slices)<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         * @return The new selected dataset by index<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         */<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        public Dataset getByIndexes(Object... indexes);<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        /**<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * This is modelled after the NumPy set item with an index dataset<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         *<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * @param obj<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         *            specifies the object used to set the selected items<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * @param index<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         *            an integer dataset<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * <a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @return The dataset with modified content<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public Dataset setBy1DIndex(Object obj, Dataset index);<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * This is modelled after the NumPy set item with an array of indexing objects<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         *<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @param obj<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         *            specifies the object used to set the selected items<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param indexes<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         *            an array of integer dataset, boolean dataset, slices or null entries (same as<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         *            full slices)<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         * <a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @return The dataset with modified content<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         */<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        public Dataset setByIndexes(Object obj, Object... indexes);<a name="line.569"></a>
+<span class="sourceLineNo">570</span><a name="line.570"></a>
+<span class="sourceLineNo">571</span>        /**<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * Fill dataset with given object<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * <a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param obj<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @return filled dataset with each item being equal to the given object<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public Dataset fill(Object obj);<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Get an element from given absolute index as a boolean. See warning in interface doc<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         * <a name="line.581"></a>
+<span class="sourceLineNo">582</span>         * @param index<a name="line.582"></a>
+<span class="sourceLineNo">583</span>         * @return element as boolean<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         */<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        public boolean getElementBooleanAbs(int index);<a name="line.585"></a>
+<span class="sourceLineNo">586</span><a name="line.586"></a>
+<span class="sourceLineNo">587</span>        /**<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * Get an element from given absolute index as a double. See warning in interface doc<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * <a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param index<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @return element as double<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public double getElementDoubleAbs(int index);<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>        /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * Get an element from given absolute index as a long. See warning in interface doc<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * <a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param index<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @return element as long<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         */<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        public long getElementLongAbs(int index);<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>        /**<a name="line.603"></a>
+<span class="sourceLineNo">604</span>         * Get an item from given absolute index as an object. See warning in interface doc<a name="line.604"></a>
+<span class="sourceLineNo">605</span>         * <a name="line.605"></a>
+<span class="sourceLineNo">606</span>         * @param index<a name="line.606"></a>
+<span class="sourceLineNo">607</span>         * @return item<a name="line.607"></a>
+<span class="sourceLineNo">608</span>         */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>        public Object getObjectAbs(int index);<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>        /**<a name="line.611"></a>
+<span class="sourceLineNo">612</span>         * Get an item from given absolute index as a string. See warning in interface doc<a name="line.612"></a>
+<span class="sourceLineNo">613</span>         * <a name="line.613"></a>
+<span class="sourceLineNo">614</span>         * @param index<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * @return item<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        public String getStringAbs(int index);<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>        /**<a name="line.619"></a>
+<span class="sourceLineNo">620</span>         * Set an item at absolute index from an object. See warning in interface doc<a name="line.620"></a>
+<span class="sourceLineNo">621</span>         * <a name="line.621"></a>
+<span class="sourceLineNo">622</span>         * @param index<a name="line.622"></a>
+<span class="sourceLineNo">623</span>         * @param obj<a name="line.623"></a>
+<span class="sourceLineNo">624</span>         */<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        public void setObjectAbs(int index, Object obj);<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>        /**<a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * Get first item as an object. The dataset must not be null<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @return item<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @since 2.0<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public Object getObject();<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>        /**<a name="line.634"></a>
+<span class="sourceLineNo">635</span>         * Get an item from given position as an object. The dataset must be 1D<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         * @param i<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         * @return item<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         */<a name="line.638"></a>
+<span class="sourceLineNo">639</span>        public Object getObject(final int i);<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>        /**<a name="line.641"></a>
+<span class="sourceLineNo">642</span>         * Get an item from given position as an object. The dataset must be 2D<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         * @param i<a name="line.643"></a>
+<span class="sourceLineNo">644</span>         * @param j<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * @return item<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        public Object getObject(final int i, final int j);<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>        /**<a name="line.649"></a>
+<span class="sourceLineNo">650</span>         * Get first item as a string. The dataset must not be null<a name="line.650"></a>
+<span class="sourceLineNo">651</span>         * @return item<a name="line.651"></a>
+<span class="sourceLineNo">652</span>         * @since 2.0<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         */<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        public String getString();<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>         * Get an item from given position as a string. The dataset must be 1D<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * @param i<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @return item<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         */<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        public String getString(final int i);<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>        /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>         * Get an item from given position as a string. The dataset must be 2D<a name="line.664"></a>
+<span class="sourceLineNo">665</span>         * @param i<a name="line.665"></a>
+<span class="sourceLineNo">666</span>         * @param j<a name="line.666"></a>
+<span class="sourceLineNo">667</span>         * @return item<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         */<a name="line.668"></a>
+<span class="sourceLineNo">669</span>        public String getString(final int i, final int j);<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>        /**<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         * Get first item as a double. The dataset must not be null<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         * @return item<a name="line.673"></a>
+<span class="sourceLineNo">674</span>         * @since 2.0<a name="line.674"></a>
+<span class="sourceLineNo">675</span>         */<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        public double getDouble();<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        /**<a name="line.678"></a>
+<span class="sourceLineNo">679</span>         * Get an item from given position as a double. The dataset must be 1D<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param i<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @return item<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         */<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public double getDouble(final int i);<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>        /**<a name="line.685"></a>
+<span class="sourceLineNo">686</span>         * Get an item from given position as a double. The dataset must be 2D<a name="line.686"></a>
+<span class="sourceLineNo">687</span>         * @param i<a name="line.687"></a>
+<span class="sourceLineNo">688</span>         * @param j<a name="line.688"></a>
+<span class="sourceLineNo">689</span>         * @return item<a name="line.689"></a>
+<span class="sourceLineNo">690</span>         */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        public double getDouble(final int i, final int j);<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span>        /**<a name="line.693"></a>
+<span class="sourceLineNo">694</span>         * Get first item as a float. The dataset must not be null<a name="line.694"></a>
+<span class="sourceLineNo">695</span>         * @return item<a name="line.695"></a>
+<span class="sourceLineNo">696</span>         * @since 2.0<a name="line.696"></a>
+<span class="sourceLineNo">697</span>         */<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        public float getFloat();<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>        /**<a name="line.700"></a>
+<span class="sourceLineNo">701</span>         * Get an item from given position as a float. The dataset must be 1D<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         * @param i<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         * @return item<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         */<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        public float getFloat(final int i);<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>        /**<a name="line.707"></a>
+<span class="sourceLineNo">708</span>         * Get an item from given position as a float. The dataset must be 2D<a name="line.708"></a>
+<span class="sourceLineNo">709</span>         * @param i<a name="line.709"></a>
+<span class="sourceLineNo">710</span>         * @param j<a name="line.710"></a>
+<span class="sourceLineNo">711</span>         * @return item<a name="line.711"></a>
+<span class="sourceLineNo">712</span>         */<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        public float getFloat(final int i, final int j);<a name="line.713"></a>
+<span class="sourceLineNo">714</span><a name="line.714"></a>
+<span class="sourceLineNo">715</span>        /**<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         * Get first item as a long. The dataset must not be null<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         * @return item<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @since 2.0<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         */<a name="line.719"></a>
+<span class="sourceLineNo">720</span>        public long getLong();<a name="line.720"></a>
+<span class="sourceLineNo">721</span><a name="line.721"></a>
+<span class="sourceLineNo">722</span>        /**<a name="line.722"></a>
+<span class="sourceLineNo">723</span>         * Get an item from given position as a long. The dataset must be 1D<a name="line.723"></a>
+<span class="sourceLineNo">724</span>         * @param i<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         * @return item<a name="line.725"></a>
+<span class="sourceLineNo">726</span>         */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public long getLong(final int i);<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Get an item from given position as a long. The dataset must be 2D<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         * @param i<a name="line.731"></a>
+<span class="sourceLineNo">732</span>         * @param j<a name="line.732"></a>
+<span class="sourceLineNo">733</span>         * @return item<a name="line.733"></a>
+<span class="sourceLineNo">734</span>         */<a name="line.734"></a>
+<span class="sourceLineNo">735</span>        public long getLong(final int i, final int j);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>        /**<a name="line.737"></a>
+<span class="sourceLineNo">738</span>         * Get first item as an int. The dataset must not be null<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         * @return item<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * @since 2.0<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         */<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        public int getInt();<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>        /**<a name="line.744"></a>
+<span class="sourceLineNo">745</span>         * Get an item from given position as an int. The dataset must be 1D<a name="line.745"></a>
+<span class="sourceLineNo">746</span>         * @param i<a name="line.746"></a>
+<span class="sourceLineNo">747</span>         * @return item<a name="line.747"></a>
+<span class="sourceLineNo">748</span>         */<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        public int getInt(final int i);<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        /**<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         * Get an item from given position as an int. The dataset must be 2D<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         * @param i<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         * @param j<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         * @return item<a name="line.755"></a>
+<span class="sourceLineNo">756</span>         */<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public int getInt(final int i, final int j);<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>        /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * Get first item as a short. The dataset must not be null<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @return item<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * @since 2.0<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         */<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        public short getShort();<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        /**<a name="line.766"></a>
+<span class="sourceLineNo">767</span>         * Get an item from given position as a short. The dataset must be 1D<a name="line.767"></a>
+<span class="sourceLineNo">768</span>         * @param i<a name="line.768"></a>
+<span class="sourceLineNo">769</span>         * @return item<a name="line.769"></a>
+<span class="sourceLineNo">770</span>         */<a name="line.770"></a>
+<span class="sourceLineNo">771</span>        public short getShort(final int i);<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>        /**<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * Get an item from given position as a short. The dataset must be 2D<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @param i<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @param j<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * @return item<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         */<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public short getShort(final int i, final int j);<a name="line.779"></a>
+<span class="sourceLineNo">780</span><a name="line.780"></a>
+<span class="sourceLineNo">781</span>        /**<a name="line.781"></a>
+<span class="sourceLineNo">782</span>         * Get first item as a byte. The dataset must not be null<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * @return item<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * @since 2.0<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         */<a name="line.785"></a>
+<span class="sourceLineNo">786</span>        public byte getByte();<a name="line.786"></a>
+<span class="sourceLineNo">787</span><a name="line.787"></a>
+<span class="sourceLineNo">788</span>        /**<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         * Get an item from given position as a byte. The dataset must be 1D<a name="line.789"></a>
+<span class="sourceLineNo">790</span>         * @param i<a name="line.790"></a>
+<span class="sourceLineNo">791</span>         * @return item<a name="line.791"></a>
+<span class="sourceLineNo">792</span>         */<a name="line.792"></a>
+<span class="sourceLineNo">793</span>        public byte getByte(final int i);<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>        /**<a name="line.795"></a>
+<span class="sourceLineNo">796</span>         * Get an item from given positionj as a byte. The dataset must be 2D<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * @param i<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * @param j<a name="line.798"></a>
+<span class="sourceLineNo">799</span>         * @return item<a name="line.799"></a>
+<span class="sourceLineNo">800</span>         */<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        public byte getByte(final int i, final int j);<a name="line.801"></a>
+<span class="sourceLineNo">802</span><a name="line.802"></a>
+<span class="sourceLineNo">803</span>        /**<a name="line.803"></a>
+<span class="sourceLineNo">804</span>         * Get first item as a boolean. The dataset must not be null<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @return item<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @since 2.0<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         */<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        public boolean getBoolean();<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>        /**<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * Get an item from given position as a boolean. The dataset must be 1D<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * @param i<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @return item<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         */<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        public boolean getBoolean(final int i);<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        /**<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         * Get an item from given position as a boolean. The dataset must be 2D<a name="line.818"></a>
+<span class="sourceLineNo">819</span>         * @param i<a name="line.819"></a>
+<span class="sourceLineNo">820</span>         * @param j<a name="line.820"></a>
+<span class="sourceLineNo">821</span>         * @return item<a name="line.821"></a>
+<span class="sourceLineNo">822</span>         */<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        public boolean getBoolean(final int i, final int j);<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>        /**<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         * Get the error for the first item. The dataset must not be null<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         * @return item<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         * @since 2.0<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         */<a name="line.829"></a>
+<span class="sourceLineNo">830</span>        public double getError();<a name="line.830"></a>
+<span class="sourceLineNo">831</span><a name="line.831"></a>
+<span class="sourceLineNo">832</span>        /**<a name="line.832"></a>
+<span class="sourceLineNo">833</span>         * Get the error for given position. The dataset must be 1D<a name="line.833"></a>
+<span class="sourceLineNo">834</span>         * @param i<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @return error value (symmetric)<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         */<a name="line.836"></a>
+<span class="sourceLineNo">837</span>        public double getError(final int i);<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>        /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span>         * Get the error for given position. The dataset must be 2D<a name="line.840"></a>
+<span class="sourceLineNo">841</span>         * @param i<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * @param j<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         * @return error value (symmetric)<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         */<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        public double getError(final int i, final int j);<a name="line.845"></a>
+<span class="sourceLineNo">846</span><a name="line.846"></a>
+<span class="sourceLineNo">847</span>        /**<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         * Get the error values for given position<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param i<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         */<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        public double[] getErrorArray(final int i);<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>        /**<a name="line.854"></a>
+<span class="sourceLineNo">855</span>         * Get the error values for given position<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         * @param i<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         * @param j<a name="line.857"></a>
+<span class="sourceLineNo">858</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.858"></a>
+<span class="sourceLineNo">859</span>         */<a name="line.859"></a>
+<span class="sourceLineNo">860</span>        public double[] getErrorArray(final int i, final int j);<a name="line.860"></a>
+<span class="sourceLineNo">861</span><a name="line.861"></a>
+<span class="sourceLineNo">862</span>        /**<a name="line.862"></a>
+<span class="sourceLineNo">863</span>         * Set the value given by object at the first position. The dataset must not be null<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @param obj<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @since 2.0<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         */<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        public void set(final Object obj);<a name="line.867"></a>
+<span class="sourceLineNo">868</span><a name="line.868"></a>
+<span class="sourceLineNo">869</span>        /**<a name="line.869"></a>
+<span class="sourceLineNo">870</span>         * Set the value given by object at given position. The dataset must be 1D<a name="line.870"></a>
+<span class="sourceLineNo">871</span>         * @param obj<a name="line.871"></a>
+<span class="sourceLineNo">872</span>         * @param i<a name="line.872"></a>
+<span class="sourceLineNo">873</span>         */<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        public void set(final Object obj, final int i);<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        /**<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * Set the value given by object at given position. The dataset must be 2D<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         * @param obj<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @param i<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         * @param j<a name="line.880"></a>
+<span class="sourceLineNo">881</span>         */<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public void set(final Object obj, final int i, final int j);<a name="line.882"></a>
+<span class="sourceLineNo">883</span><a name="line.883"></a>
+<span class="sourceLineNo">884</span>        /**<a name="line.884"></a>
+<span class="sourceLineNo">885</span>         * In-place sort of dataset<a name="line.885"></a>
+<span class="sourceLineNo">886</span>         * <a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * @param axis<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         *            to sort along. If null, then the flattened view is sorted<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @return sorted dataset<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         */<a name="line.890"></a>
+<span class="sourceLineNo">891</span>        public Dataset sort(Integer axis);<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>        @Override<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        public Dataset getSlice(int[] start, int[] stop, int[] step);<a name="line.894"></a>
+<span class="sourceLineNo">895</span><a name="line.895"></a>
+<span class="sourceLineNo">896</span>        @Override<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        public Dataset getSlice(IMonitor mon, int[] start, int[] stop, int[] step);<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>        @Override<a name="line.899"></a>
+<span class="sourceLineNo">900</span>        public Dataset getSlice(Slice... slice);<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>        @Override<a name="line.902"></a>
+<span class="sourceLineNo">903</span>        public Dataset getSlice(IMonitor mon, Slice... slice);<a name="line.903"></a>
+<span class="sourceLineNo">904</span><a name="line.904"></a>
+<span class="sourceLineNo">905</span>        @Override<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        public Dataset getSlice(SliceND slice);<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>        @Override<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        public Dataset getSlice(IMonitor mon, SliceND slice);<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>        @Override<a name="line.911"></a>
+<span class="sourceLineNo">912</span>        public Dataset getSliceView(int[] start, int[] stop, int[] step);<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>        @Override<a name="line.914"></a>
+<span class="sourceLineNo">915</span>        public Dataset getSliceView(Slice... slice);<a name="line.915"></a>
+<span class="sourceLineNo">916</span><a name="line.916"></a>
+<span class="sourceLineNo">917</span>        @Override<a name="line.917"></a>
+<span class="sourceLineNo">918</span>        public Dataset getSliceView(SliceND slice);<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>        /**<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         * This is modelled after the NumPy array slice<a name="line.921"></a>
+<span class="sourceLineNo">922</span>         *<a name="line.922"></a>
+<span class="sourceLineNo">923</span>         * @param obj<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         *            specifies the object used to set the specified slice<a name="line.924"></a>
+<span class="sourceLineNo">925</span>         * @param start<a name="line.925"></a>
+<span class="sourceLineNo">926</span>         *            specifies the starting indexes<a name="line.926"></a>
+<span class="sourceLineNo">927</span>         * @param stop<a name="line.927"></a>
+<span class="sourceLineNo">928</span>         *            specifies the stopping indexes (nb, these are &lt;b&gt;not&lt;/b&gt; included in the slice)<a name="line.928"></a>
+<span class="sourceLineNo">929</span>         * @param step<a name="line.929"></a>
+<span class="sourceLineNo">930</span>         *            specifies the steps in the slice<a name="line.930"></a>
+<span class="sourceLineNo">931</span>         * <a name="line.931"></a>
+<span class="sourceLineNo">932</span>         * @return The dataset with the sliced set to object<a name="line.932"></a>
+<span class="sourceLineNo">933</span>         */<a name="line.933"></a>
+<span class="sourceLineNo">934</span>        public Dataset setSlice(Object obj, int[] start, int[] stop, int[] step);<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>        /**<a name="line.936"></a>
+<span class="sourceLineNo">937</span>         * This is modelled after the NumPy array slice<a name="line.937"></a>
+<span class="sourceLineNo">938</span>         * <a name="line.938"></a>
+<span class="sourceLineNo">939</span>         * @param obj<a name="line.939"></a>
+<span class="sourceLineNo">940</span>         * @param slice<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         */<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        public Dataset setSlice(Object obj, Slice... slice);<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>        /**<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         * This is modelled after the NumPy array slice<a name="line.945"></a>
+<span class="sourceLineNo">946</span>         * <a name="line.946"></a>
+<span class="sourceLineNo">947</span>         * @param obj<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         * @param slice<a name="line.948"></a>
+<span class="sourceLineNo">949</span>         */<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        public Dataset setSlice(Object obj, SliceND slice);<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>        /**<a name="line.952"></a>
+<span class="sourceLineNo">953</span>         * @param obj<a name="line.953"></a>
+<span class="sourceLineNo">954</span>         *            specifies the object used to set the specified slice<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         * @param iterator<a name="line.955"></a>
+<span class="sourceLineNo">956</span>         *            specifies the slice iterator<a name="line.956"></a>
+<span class="sourceLineNo">957</span>         * <a name="line.957"></a>
+<span class="sourceLineNo">958</span>         * @return The dataset with the sliced set to object<a name="line.958"></a>
+<span class="sourceLineNo">959</span>         */<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        public Dataset setSlice(Object obj, IndexIterator iterator);<a name="line.960"></a>
+<span class="sourceLineNo">961</span><a name="line.961"></a>
+<span class="sourceLineNo">962</span>        /**<a name="line.962"></a>
+<span class="sourceLineNo">963</span>         * Populate another dataset with part of current dataset<a name="line.963"></a>
+<span class="sourceLineNo">964</span>         * <a name="line.964"></a>
+<span class="sourceLineNo">965</span>         * @param other<a name="line.965"></a>
+<span class="sourceLineNo">966</span>         * @param iter<a name="line.966"></a>
+<span class="sourceLineNo">967</span>         *            over current dataset<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         */<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        public void fillDataset(Dataset other, IndexIterator iter);<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>        /**<a name="line.971"></a>
+<span class="sourceLineNo">972</span>         * Test if all items are true<a name="line.972"></a>
+<span class="sourceLineNo">973</span>         */<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        public boolean all();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>        /**<a name="line.976"></a>
+<span class="sourceLineNo">977</span>         * @param axis<a name="line.977"></a>
+<span class="sourceLineNo">978</span>         * @return dataset where items are true if all items along axis are true<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         */<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        public Dataset all(int axis);<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>        /**<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         * Test if any items are true<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         */<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        public boolean any();<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span>        /**<a name="line.987"></a>
+<span class="sourceLineNo">988</span>         * @param axis<a name="line.988"></a>
+<span class="sourceLineNo">989</span>         * @return dataset where items are true if any items along axis are true<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         */<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        public Dataset any(int axis);<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        /**<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * In-place addition with object o<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * <a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @param o<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @return sum dataset<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         */<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public Dataset iadd(Object o);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        /**<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         * In-place subtraction with object o<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>         * <a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>         * @param o<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * @return difference dataset<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         */<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public Dataset isubtract(Object o);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        /**<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>         * In-place multiplication with object o<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>         * <a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>         * @param o<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>         * @return product dataset<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>         */<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        public Dataset imultiply(Object o);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span><a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        /**<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>         * In-place division with object o<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>         * <a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>         * @param o<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>         * @return dividend dataset<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>         */<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>        public Dataset idivide(Object o);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span><a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        /**<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * In-place floor division with object o<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * <a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         * @param o<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>         * @return dividend dataset<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        public Dataset ifloorDivide(Object o);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span><a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        /**<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * In-place remainder<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * <a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @return remaindered dataset<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         */<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        public Dataset iremainder(Object o);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        /**<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>         * In-place floor<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * <a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * @return floored dataset<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         */<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        public Dataset ifloor();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        /**<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * In-place raise to power of object o<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * <a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @param o<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         * @return raised dataset<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         */<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public Dataset ipower(Object o);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span><a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        /**<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>         * Calculate residual of dataset with object o<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>         * See {@link #residual(Object o, boolean ignoreNaNs)} with ignoreNaNs = false<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         * <a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * @param o<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @return sum of the squares of the differences<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         */<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        public double residual(Object o);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        /**<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>         * Calculate residual of dataset with object o<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>         * <a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>         * @param o<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>         * @param ignoreNaNs if true, skip NaNs<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>         * @return sum of the squares of the differences<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>         */<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>        public double residual(Object o, boolean ignoreNaNs);<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span><a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>        /**<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>         * Calculate residual of dataset with object o and weight. The weight is used to multiply<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>         * the squared differences<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>         * <a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>         * @param o<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>         * @param weight<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         * @param ignoreNaNs if true, skip NaNs<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @return sum of the squares of the differences<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         */<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        public double residual(Object o, Dataset weight, boolean ignoreNaNs);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span><a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        /**<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>         * @return true if dataset contains any infinities<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>         */<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        public boolean containsInfs();<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span><a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>        /**<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @return true if dataset contains any NaNs<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         */<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>        public boolean containsNans();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span><a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>        /**<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>         * @return true if dataset contains any NaNs or infinities<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>         */<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>        public boolean containsInvalidNumbers();<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span><a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>        /**<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>         * @param axis<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>         * @param ignoreInvalids - Can be null, empty, or one or more booleans. By default, all booleans<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         * boolean to ignore infinities separately.<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>         * @return maxima along axis in dataset<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>         * @since 2.0<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>         */<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>        public Dataset max(int axis, boolean... ignoreInvalids);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span><a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>        /**<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * @param axis<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @return minima along axis in dataset<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         * @since 2.0<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>         */<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public Dataset min(int axis, boolean... ignoreInvalids);<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        /**<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>         * Find absolute index of maximum value (in a flattened view)<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>         * @return absolute index<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>         * @since 2.0<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>         */<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        public int argMax(boolean... ignoreInvalids);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        /**<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>         * Find indices of maximum values along given axis<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * @param axis<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>         * @return index dataset<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>         * @since 2.0<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>         */<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>        public Dataset argMax(int axis, boolean... ignoreInvalids);<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span><a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>        /**<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>         * Find absolute index of minimum value (in a flattened view)<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>         * @return absolute index<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>         * @since 2.0<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>         */<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        public int argMin(boolean... ignoreInvalids);<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span><a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        /**<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>         * Find indices of minimum values along given axis<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * @param axis<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         * @return index dataset<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>         * @since 2.0<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>         */<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        public Dataset argMin(int axis, boolean... ignoreInvalids);<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span><a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        /**<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>         * @return peak-to-peak value, the difference of maximum and minimum of dataset<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>         * @since 2.0<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         */<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>        public Number peakToPeak(boolean... ignoreInvalids);<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span><a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        /**<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>         * @param axis<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>         * @return peak-to-peak dataset, the difference of maxima and minima of dataset along axis<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>         * @since 2.0<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>         */<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>        public Dataset peakToPeak(int axis, boolean... ignoreInvalids);<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>        /**<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         * @return number of items in dataset<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>         * @since 2.0<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>         */<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>        public long count(boolean... ignoreInvalids);<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span><a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>        /**<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>         * @param axis<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>         * @return number of items along axis in dataset<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         * @since 2.0<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>         */<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>        public Dataset count(int axis, boolean... ignoreInvalids);<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span><a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>        /**<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @return sum over all items in dataset as a Double, array of doubles or a complex number<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @since 2.0<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         */<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        public Object sum(boolean... ignoreInvalids);<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span><a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>        /**<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param axis<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @return sum along axis in dataset<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @since 2.0<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         */<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        public Dataset sum(int axis, boolean... ignoreInvalids);<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span><a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>        /**<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>         * @return product over all items in dataset<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>         * @since 2.0<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>         */<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>        public Object product(boolean... ignoreInvalids);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span><a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        /**<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>         * @param axis<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>         * @return product along axis in dataset<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>         * @since 2.0<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>         */<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>        public Dataset product(int axis, boolean... ignoreInvalids);<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span><a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>        /**<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>         * @param axis<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>         * @return mean along axis in dataset<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>         * @since 2.0<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>         */<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>        public Dataset mean(int axis, boolean... ignoreInvalids);<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>        /**<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>         * @return sample variance of whole dataset<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>         * @see #variance(boolean, boolean...) with isWholePopulation = false<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>         * @since 2.0<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>         */<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>        public double variance();<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span><a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>        /**<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>         * The sample variance can be calculated in two ways: if the dataset is considered as the<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>         * entire population then the sample variance is simply the second central moment:<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>         * <a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>         * &lt;pre&gt;<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>         *    sum((x_i - m)^2)/N<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>         * where {x_i} are set of N population values and m is the mean<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>         *    m = sum(x_i)/N<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>         * &lt;/pre&gt;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>         * <a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>         * Otherwise, if the dataset is a set of samples (with replacement) from the population then<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>         * <a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>         * &lt;pre&gt;<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>         *    sum((x_i - m)^2)/(N-1)<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>         * where {x_i} are set of N sample values and m is the unbiased estimate of the mean<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>         *    m = sum(x_i)/N<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>         * &lt;/pre&gt;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>         * <a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>         * Note that the second definition is also the unbiased estimator of population variance.<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>         * <a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>         * @param isWholePopulation<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>         * @return sample variance<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>         * @since 2.0<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>         */<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>        public double variance(boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>        /**<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>         * @param axis<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>         * @return sample variance along axis in dataset<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>         * @see #variance(int, boolean, boolean...) with isWholePopulation = false<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>         */<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>        public Dataset variance(int axis);<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span><a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>        /**<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>         * @param axis<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>         * @param isWholePopulation<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>         * @return sample variance along axis in dataset<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>         * @see #variance(boolean, boolean...) with isWholePopulation = false<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>         * @since 2.0<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>         */<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>        public Dataset variance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>        /**<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>         * Standard deviation is square root of the variance<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>         * <a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>         * @return sample standard deviation of all items in dataset<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>         * @see #stdDeviation(boolean, boolean...) with isWholePopulation = false<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>         * @since 2.0<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>         */<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>        public double stdDeviation();<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span><a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>        /**<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>         * Standard deviation is square root of the variance<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>         * <a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>         * @param isWholePopulation<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>         * @return sample standard deviation of all items in dataset<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>         * @see #variance(boolean, boolean...)<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>         * @since 2.0<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>         */<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>        public double stdDeviation(boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span><a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>        /**<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>         * Standard deviation is square root of the variance<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>         * <a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>         * @param axis<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>         * @return standard deviation along axis in dataset<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>         * @see #stdDeviation(int, boolean, boolean...) with isWholePopulation = false<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>         */<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>        public Dataset stdDeviation(int axis);<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span><a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>        /**<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>         * Standard deviation is square root of the variance<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>         * <a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>         * @param axis<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>         * @param isWholePopulation<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>         * @return standard deviation along axis in dataset<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>         * @see #variance(boolean, boolean...) with isWholePopulation = false<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>         * @since 2.0<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>         */<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>        public Dataset stdDeviation(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span><a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>        /**<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>         * @param ignoreInvalids - see {@link IDataset#max(boolean...)}<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>         * @return root mean square<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>         * @since 2.0<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>         */<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>        public double rootMeanSquare(boolean... ignoreInvalids);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        /**<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>         * @param axis<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>         * @param ignoreInvalids - see {@link #max(int, boolean...)}<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>         * @return root mean square along axis in dataset<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>         * @since 2.0<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>         */<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>        public Dataset rootMeanSquare(int axis, boolean... ignoreInvalids);<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>}<a name="line.1325"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DatasetFactory.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DatasetFactory.html
new file mode 100644
index 0000000..e39ae03
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DatasetFactory.html
@@ -0,0 +1,1144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.math.BigInteger;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Date;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.List;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class DatasetFactory {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * Create dataset with items ranging from 0 up to given stop in steps of 1<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @return a new double dataset of given shape and type, filled with values determined by parameters<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public static DoubleDataset createRange(final double stop) {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                return createRange(DoubleDataset.class, 0, stop, 1);<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        }<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Create dataset with items ranging from given start up to given stop in given steps<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param start<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param step spacing between items<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @since 2.1<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public static DoubleDataset createRange(final double start, final double stop, final double step) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                return createRange(DoubleDataset.class, start, stop, step);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Create dataset with items ranging from 0 up to given stop in steps of 1<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param dtype<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * <a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.48"></a>
+<span class="sourceLineNo">049</span>         *             such as {@link #createRange(Class, double)} <a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        @Deprecated<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public static Dataset createRange(final double stop, final int dtype) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                return createRange(0, stop, 1, dtype);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Create dataset with items ranging from given start up to given stop in given steps<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param start<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param step spacing between items<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param dtype<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * <a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.64"></a>
+<span class="sourceLineNo">065</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        @Deprecated<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public static Dataset createRange(final double start, final double stop, final double step, final int dtype) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                if ((step &gt; 0) != (start &lt;= stop)) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        throw new IllegalArgumentException("Invalid parameters: start and stop must be in correct order for step");<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>                switch (dtype) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                case Dataset.BOOL:<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        break;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                case Dataset.INT8:<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        return ByteDataset.createRange(start, stop, step);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                case Dataset.INT16:<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return ShortDataset.createRange(start, stop, step);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                case Dataset.INT32:<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        return IntegerDataset.createRange(start, stop, step);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                case Dataset.INT64:<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        return LongDataset.createRange(start, stop, step);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                case Dataset.FLOAT32:<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return FloatDataset.createRange(start, stop, step);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                case Dataset.FLOAT64:<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return DoubleDataset.createRange(start, stop, step);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                case Dataset.COMPLEX64:<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                case Dataset.COMPLEX128:<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return ComplexDoubleDataset.createRange(start, stop, step);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                throw new IllegalArgumentException("dtype not known");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * Create compound dataset with items of given size ranging from 0 up to given stop in steps of 1<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param itemSize<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param dtype<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * <a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.103"></a>
+<span class="sourceLineNo">104</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Deprecated<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public static CompoundDataset createRange(final int itemSize, final double stop, final int dtype) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                return createRange(itemSize, 0, stop, 1, dtype);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>        /**<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * Create compound dataset with items of given size ranging from given start up to given stop in given steps<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param itemSize<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param start<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param step spacing between items<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param dtype<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @return a new 1D dataset of given type, filled with values determined by parameters<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * <a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.120"></a>
+<span class="sourceLineNo">121</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        @Deprecated<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public static CompoundDataset createRange(final int itemSize, final double start, final double stop, final double step, final int dtype) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                if (itemSize &lt; 1) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        throw new IllegalArgumentException("Item size must be greater or equal to 1");<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                if ((step &gt; 0) != (start &lt;= stop)) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        throw new IllegalArgumentException("Invalid parameters: start and stop must be in correct order for step");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                switch (dtype) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                case Dataset.BOOL:<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        break;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                case Dataset.ARRAYINT8:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                case Dataset.INT8:<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        return CompoundIntegerDataset.createRange(itemSize, start, stop, step);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                case Dataset.ARRAYINT16:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                case Dataset.INT16:<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return CompoundShortDataset.createRange(itemSize, start, stop, step);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                case Dataset.ARRAYINT32:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                case Dataset.INT32:<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        return CompoundIntegerDataset.createRange(itemSize, start, stop, step);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                case Dataset.ARRAYINT64:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                case Dataset.INT64:<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        return CompoundLongDataset.createRange(itemSize, start, stop, step);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                case Dataset.ARRAYFLOAT32:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                case Dataset.FLOAT32:<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        return CompoundFloatDataset.createRange(itemSize, start, stop, step);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                case Dataset.ARRAYFLOAT64:<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                case Dataset.FLOAT64:<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        return CompoundDoubleDataset.createRange(itemSize, start, stop, step);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                case Dataset.COMPLEX64:<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        if (itemSize != 2) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                throw new IllegalArgumentException("Item size must be equal to 2");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                case Dataset.COMPLEX128:<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        if (itemSize != 2) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                throw new IllegalArgumentException("Item size must be equal to 2");<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        return ComplexFloatDataset.createRange(start, stop, step);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                throw new IllegalArgumentException("dtype not known");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         *<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param obj<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         *            can be Java list, array or Number<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @return dataset<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        public static Dataset createFromObject(Object obj) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return createFromObject(obj, null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * <a name="line.180"></a>
+<span class="sourceLineNo">181</span>         * @param obj<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         *            can be Java list, array or Number<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param shape can be null<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @return dataset<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        public static Dataset createFromObject(Object obj, int... shape) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                if (obj instanceof IDataset) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        Dataset d = DatasetUtils.convertToDataset((IDataset) obj);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        if (shape != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                d.setShape(shape);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        return d;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                if (obj instanceof BigInteger) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        obj = ((BigInteger) obj).longValue();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                final int dtype = DTypeUtils.getDTypeFromObject(obj);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                return createFromObject(dtype, obj, shape);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>        /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * Create a dataset from object (automatically detect dataset type)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @param isUnsigned<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         *            if true, interpret integer values as unsigned by increasing element bit width if required<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param obj<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         *            can be a Java list, array or Number<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @return dataset<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public static Dataset createFromObject(boolean isUnsigned, final Object obj) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                Dataset a = createFromObject(obj);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                if (isUnsigned) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        a = DatasetUtils.makeUnsigned(a, true);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                return a;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>        /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * Create a dataset from object<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @param dtype<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * @param obj<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         *            can be a Java list, array or Number<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * @return dataset<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * <a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *             such as {@link #createFromObject(Class, Object, int)} <a name="line.227"></a>
+<span class="sourceLineNo">228</span>         */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        @Deprecated<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        public static Dataset createFromObject(final int dtype, final Object obj) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                return createFromObject(dtype, obj, null);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>        /**<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * Create a dataset from object<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @param dtype<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @param obj<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         *            can be a Java list, array or Number<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * @param shape can be null<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * @return dataset<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * <a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.243"></a>
+<span class="sourceLineNo">244</span>         *             such as {@link #createFromObject(Class, Object, int...)} <a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        @Deprecated<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        public static Dataset createFromObject(final int dtype, final Object obj, final int... shape) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return createFromObject(1, dtype, obj, shape);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>        /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * Create a dataset from object<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * @param itemSize<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @param dtype<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @param obj<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         *            can be a Java list, array or Number<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @param shape can be null<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * @return dataset<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * <a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *             such as {@link #createFromObject(int, Class, Object, int...)} <a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        @Deprecated<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public static Dataset createFromObject(final int itemSize, final int dtype, final Object obj, final int... shape) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                Dataset d = null;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (obj instanceof IDataset) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        d = itemSize == 1 ? DatasetUtils.cast((IDataset) obj, dtype) :<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                DatasetUtils.cast((IDataset) obj, false, dtype, itemSize);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                } else {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        // primitive arrays<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        Class&lt;? extends Object&gt; ca = obj == null ? null : obj.getClass().getComponentType();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        if (ca != null &amp;&amp; (ca.isPrimitive() || ca.equals(String.class))) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                switch (dtype) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                case Dataset.COMPLEX64:<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                        return new ComplexFloatDataset(DTypeUtils.toFloatArray(obj, DTypeUtils.getLength(obj)), shape);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                case Dataset.COMPLEX128:<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                        return new ComplexDoubleDataset(DTypeUtils.toDoubleArray(obj, DTypeUtils.getLength(obj)), shape);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                default:<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                        d = createFromPrimitiveArray(DTypeUtils.getDTypeFromClass(ca), obj);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        if (!DTypeUtils.isDTypeElemental(dtype)) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                                d = DatasetUtils.createCompoundDataset(d, dtype == Dataset.RGB ? 3 : itemSize);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                        d = DatasetUtils.cast(d, dtype);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                        } else {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                switch (dtype) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                case Dataset.BOOL:<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                        d = BooleanDataset.createFromObject(obj);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                                        break;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                                case Dataset.INT8:<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                        d = ByteDataset.createFromObject(obj);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        break;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                case Dataset.INT16:<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                        d = ShortDataset.createFromObject(obj);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        break;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                case Dataset.INT32:<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        d = IntegerDataset.createFromObject(obj);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        break;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                case Dataset.INT64:<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                        d = LongDataset.createFromObject(obj);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                        break;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                case Dataset.ARRAYINT8:<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                        d = CompoundByteDataset.createFromObject(itemSize, obj);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                        break;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                case Dataset.ARRAYINT16:<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                        d = CompoundShortDataset.createFromObject(itemSize, obj);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                        break;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                case Dataset.ARRAYINT32:<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                        d = CompoundIntegerDataset.createFromObject(itemSize, obj);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                        break;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                case Dataset.ARRAYINT64:<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                        d = CompoundLongDataset.createFromObject(itemSize, obj);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                        break;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                                case Dataset.FLOAT32:<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                                        d = FloatDataset.createFromObject(obj);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                        break;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                                case Dataset.FLOAT64:<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                        d = DoubleDataset.createFromObject(obj);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                                        break;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                case Dataset.ARRAYFLOAT32:<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                        d = CompoundFloatDataset.createFromObject(itemSize, obj);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                        break;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                case Dataset.ARRAYFLOAT64:<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                        d = CompoundDoubleDataset.createFromObject(itemSize, obj);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                        break;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                case Dataset.COMPLEX64:<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                        d = ComplexFloatDataset.createFromObject(obj);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                        break;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                case Dataset.COMPLEX128:<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                        d = ComplexDoubleDataset.createFromObject(obj);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                        break;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                case Dataset.DATE:<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                        d = DateDatasetImpl.createFromObject(obj);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                        break;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                                case Dataset.STRING:<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                                        d = StringDataset.createFromObject(obj);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                                        break;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                                case Dataset.OBJECT:<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                                        d = ObjectDataset.createFromObject(obj);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                        break;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                case Dataset.RGB:<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                        d = RGBDataset.createFromObject(obj);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                                        break;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                default:<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                        throw new IllegalArgumentException("Dataset type is not known");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        }<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                if (shape != null &amp;&amp; !(shape.length == 0 &amp;&amp; d.getSize() &gt; 1)) { // allow zero-rank datasets<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        d.setShape(shape);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                return d;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>        private static Dataset createFromPrimitiveArray(final int dtype, final Object array) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                switch (dtype) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                case Dataset.BOOL:<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        return new BooleanDataset((boolean []) array);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                case Dataset.INT8:<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        return new ByteDataset((byte []) array);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                case Dataset.INT16:<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                        return new ShortDataset((short []) array);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                case Dataset.INT32:<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        return new IntegerDataset((int []) array, null);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                case Dataset.INT64:<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return new LongDataset((long []) array);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                case Dataset.FLOAT32:<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        return new FloatDataset((float []) array);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                case Dataset.FLOAT64:<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        return new DoubleDataset((double []) array);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                case Dataset.STRING:<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        return new StringDataset((String []) array);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                case Dataset.DATE:<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                        return new DateDatasetImpl((Date []) array);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                default:<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        return null;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>        /**<a name="line.383"></a>
+<span class="sourceLineNo">384</span>         * Create dataset of appropriate type from list<a name="line.384"></a>
+<span class="sourceLineNo">385</span>         * <a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * @param objectList<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * @return dataset filled with values from list<a name="line.387"></a>
+<span class="sourceLineNo">388</span>         */<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        public static Dataset createFromList(List&lt;?&gt; objectList) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                if (objectList == null || objectList.size() == 0) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        throw new IllegalArgumentException("No list or zero-length list given");<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>                Object obj = null;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                for (Object o : objectList) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                        if (o != null) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                                obj = o;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                break;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                if (obj == null) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                        return zeros(new int[objectList.size()], Dataset.OBJECT);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>                Class&lt;? extends Object&gt; clazz = obj.getClass();<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                if (!DTypeUtils.isClassSupportedAsElement(clazz)) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        throw new IllegalArgumentException("Class of list element not supported");<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                }<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>                int dtype = DTypeUtils.getDTypeFromClass(clazz);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return createFromList(dtype, objectList);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * Create dataset of given type from list<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         *<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         * @param dtype<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         * @param objectList<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * @return dataset filled with values from list<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         * <a name="line.420"></a>
+<span class="sourceLineNo">421</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.421"></a>
+<span class="sourceLineNo">422</span>         *             such as {@link #createFromList(Class, List&lt;?&gt;)} <a name="line.422"></a>
+<span class="sourceLineNo">423</span>         */     <a name="line.423"></a>
+<span class="sourceLineNo">424</span>        @Deprecated<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        public static Dataset createFromList(final int dtype, List&lt;?&gt; objectList) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                int len = objectList.size();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                Dataset result = zeros(new int[] { len }, dtype);<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>                for (int i = 0; i &lt; len; i++) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        result.setObjectAbs(i, objectList.get(i));<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                }<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                return result;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>        /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         * Create compound dataset of given type from given parts<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         *<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * @param objects<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @return compound dataset<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         */<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        public static CompoundDataset createCompoundDataset(Object... objects) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                Dataset[] datasets = new Dataset[objects.length];<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                for (int i = 0; i &lt; objects.length; i++) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                        datasets[i] = createFromObject(objects[i]);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                return DatasetUtils.createCompoundDataset(datasets);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>        /**<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * Create compound dataset of given type from given parts<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         *<a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @param dtype<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         * @param objects<a name="line.453"></a>
+<span class="sourceLineNo">454</span>         * @return compound dataset<a name="line.454"></a>
+<span class="sourceLineNo">455</span>         * <a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.456"></a>
+<span class="sourceLineNo">457</span>         *             such as {@link #createCompoundDataset(Class, Object...)} <a name="line.457"></a>
+<span class="sourceLineNo">458</span>         */<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        @Deprecated<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        public static CompoundDataset createCompoundDataset(final int dtype, Object... objects) {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                Dataset[] datasets = new Dataset[objects.length];<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                for (int i = 0; i &lt; objects.length; i++) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        datasets[i] = createFromObject(objects[i]);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                return DatasetUtils.createCompoundDataset(dtype, datasets);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        }<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>        /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         * Create complex dataset of given type from real and imaginary parts<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         *<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @param dtype<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * @param real<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param imag<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @return complex dataset<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         * <a name="line.475"></a>
+<span class="sourceLineNo">476</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.476"></a>
+<span class="sourceLineNo">477</span>         *             such as {@link #createComplexDataset(Class, Object, Object)} <a name="line.477"></a>
+<span class="sourceLineNo">478</span>         */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        @Deprecated<a name="line.479"></a>
+<span class="sourceLineNo">480</span>        public static CompoundDataset createComplexDataset(final int dtype, Object real, Object imag) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                switch (dtype) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                case Dataset.COMPLEX64:<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        return new ComplexFloatDataset(createFromObject(real), createFromObject(imag));<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                case Dataset.COMPLEX128:<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                        return new ComplexDoubleDataset(createFromObject(real), createFromObject(imag));<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                default:<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        throw new IllegalArgumentException("Dataset class must be a complex one");<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                }<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        /**<a name="line.491"></a>
+<span class="sourceLineNo">492</span>         * @param shape<a name="line.492"></a>
+<span class="sourceLineNo">493</span>         * @return a new double dataset of given shape, filled with zeros<a name="line.493"></a>
+<span class="sourceLineNo">494</span>         */<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        public static DoubleDataset zeros(final int... shape) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                return zeros(DoubleDataset.class, shape);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>        /**<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * @param shape<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @param dtype<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @return a new dataset of given shape and type, filled with zeros<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         * <a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.504"></a>
+<span class="sourceLineNo">505</span>         *             such as {@link #zeros(Class, int...)} <a name="line.505"></a>
+<span class="sourceLineNo">506</span>         */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        @Deprecated<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        public static Dataset zeros(final int[] shape, final int dtype) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                switch (dtype) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                case Dataset.BOOL:<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return new BooleanDataset(shape);<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                case Dataset.INT8:<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                case Dataset.ARRAYINT8:<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        return new ByteDataset(shape);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                case Dataset.INT16:<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                case Dataset.ARRAYINT16:<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        return new ShortDataset(shape);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                case Dataset.RGB:<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        return new RGBDataset(shape);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                case Dataset.INT32:<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                case Dataset.ARRAYINT32:<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        return new IntegerDataset(shape);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                case Dataset.INT64:<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                case Dataset.ARRAYINT64:<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return new LongDataset(shape);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                case Dataset.FLOAT32:<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                case Dataset.ARRAYFLOAT32:<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        return new FloatDataset(shape);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                case Dataset.FLOAT64:<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                case Dataset.ARRAYFLOAT64:<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        return new DoubleDataset(shape);<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                case Dataset.COMPLEX64:<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                        return new ComplexFloatDataset(shape);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                case Dataset.COMPLEX128:<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        return new ComplexDoubleDataset(shape);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                case Dataset.STRING:<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        return new StringDataset(shape);<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                case Dataset.DATE:<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        return new DateDatasetImpl(shape);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                case Dataset.OBJECT:<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        return new ObjectDataset(shape);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                }<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                throw new IllegalArgumentException("dtype not known or unsupported");<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        /**<a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @param itemSize<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * @param shape<a name="line.549"></a>
+<span class="sourceLineNo">550</span>         * @param dtype<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * @return a new dataset of given item size, shape and type, filled with zeros<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * <a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.553"></a>
+<span class="sourceLineNo">554</span>         *             such as {@link #zeros(int, Class, int...)} <a name="line.554"></a>
+<span class="sourceLineNo">555</span>         */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Deprecated<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public static Dataset zeros(final int itemSize, final int[] shape, final int dtype) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                if (itemSize == 1) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                        return zeros(shape, dtype);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                }<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                return compoundZeros(itemSize, shape, dtype);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        }<a name="line.562"></a>
+<span class="sourceLineNo">563</span><a name="line.563"></a>
+<span class="sourceLineNo">564</span>        /**<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         * @param itemSize<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         * @param shape<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * @param dtype<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * @return a new dataset of given item size, shape and type, filled with zeros<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @since 2.0<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * <a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.571"></a>
+<span class="sourceLineNo">572</span>         *             such as {@link #compoundZeros(int, Class, int)} <a name="line.572"></a>
+<span class="sourceLineNo">573</span>         */<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        @Deprecated<a name="line.574"></a>
+<span class="sourceLineNo">575</span>        public static CompoundDataset compoundZeros(final int itemSize, final int[] shape, final int dtype) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                switch (dtype) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                case Dataset.INT8:<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                case Dataset.ARRAYINT8:<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                        return new CompoundByteDataset(itemSize, shape);<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                case Dataset.INT16:<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                case Dataset.ARRAYINT16:<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                        return new CompoundShortDataset(itemSize, shape);<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                case Dataset.RGB:<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        if (itemSize != 3) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                throw new IllegalArgumentException("Number of elements not compatible with RGB type");<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                        }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                        return new RGBDataset(shape);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                case Dataset.INT32:<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                case Dataset.ARRAYINT32:<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                        return new CompoundIntegerDataset(itemSize, shape);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                case Dataset.INT64:<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                case Dataset.ARRAYINT64:<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        return new CompoundLongDataset(itemSize, shape);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                case Dataset.FLOAT32:<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                case Dataset.ARRAYFLOAT32:<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                        return new CompoundFloatDataset(itemSize, shape);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                case Dataset.FLOAT64:<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                case Dataset.ARRAYFLOAT64:<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        return new CompoundDoubleDataset(itemSize, shape);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                case Dataset.COMPLEX64:<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        if (itemSize != 2) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        }<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                        return new ComplexFloatDataset(shape);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                case Dataset.COMPLEX128:<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        if (itemSize != 2) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        return new ComplexDoubleDataset(shape);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                }<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                throw new IllegalArgumentException("dtype not a known compound type");<a name="line.611"></a>
+<span class="sourceLineNo">612</span>        }<a name="line.612"></a>
+<span class="sourceLineNo">613</span><a name="line.613"></a>
+<span class="sourceLineNo">614</span>        /**<a name="line.614"></a>
+<span class="sourceLineNo">615</span>         * @param dataset<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * @return a new dataset of same shape and type as input dataset, filled with zeros<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         */<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        @SuppressWarnings("unchecked")<a name="line.618"></a>
+<span class="sourceLineNo">619</span>        public static &lt;T extends Dataset&gt; T zeros(final T dataset) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                int dtype = dataset.getDType();<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                return (T) (DTypeUtils.isDTypeElemental(dtype) ? zeros(dataset, dtype) :<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                        compoundZeros(dataset.getElementsPerItem(),  dataset.getShapeRef(), dtype));<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>        /**<a name="line.625"></a>
+<span class="sourceLineNo">626</span>         * Create a new dataset of same shape as input dataset, filled with zeros. If dtype is not<a name="line.626"></a>
+<span class="sourceLineNo">627</span>         * explicitly compound then an elemental dataset is created <a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * @param dataset<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @param dtype<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @return a new dataset<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         * <a name="line.631"></a>
+<span class="sourceLineNo">632</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.632"></a>
+<span class="sourceLineNo">633</span>         *             such as {@link #zeros(Dataset, Class)} <a name="line.633"></a>
+<span class="sourceLineNo">634</span>         */<a name="line.634"></a>
+<span class="sourceLineNo">635</span>        @Deprecated<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        public static Dataset zeros(final Dataset dataset, final int dtype) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                final int[] shape = dataset.getShapeRef();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                final int isize = DTypeUtils.isDTypeElemental(dtype) ? 1 :dataset.getElementsPerItem();<a name="line.638"></a>
+<span class="sourceLineNo">639</span><a name="line.639"></a>
+<span class="sourceLineNo">640</span>                return zeros(isize, shape, dtype);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        }<a name="line.641"></a>
+<span class="sourceLineNo">642</span><a name="line.642"></a>
+<span class="sourceLineNo">643</span>        /**<a name="line.643"></a>
+<span class="sourceLineNo">644</span>         * @param dataset<a name="line.644"></a>
+<span class="sourceLineNo">645</span>         * @return a new dataset of same shape and type as input dataset, filled with ones<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        @SuppressWarnings("unchecked")<a name="line.647"></a>
+<span class="sourceLineNo">648</span>        public static &lt;T extends Dataset&gt; T ones(final T dataset) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                return (T) ones(dataset, dataset.getDType());<a name="line.649"></a>
+<span class="sourceLineNo">650</span>        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span><a name="line.651"></a>
+<span class="sourceLineNo">652</span>        /**<a name="line.652"></a>
+<span class="sourceLineNo">653</span>         * Create a new dataset of same shape as input dataset, filled with ones. If dtype is not<a name="line.653"></a>
+<span class="sourceLineNo">654</span>         * explicitly compound then an elemental dataset is created<a name="line.654"></a>
+<span class="sourceLineNo">655</span>         * @param dataset<a name="line.655"></a>
+<span class="sourceLineNo">656</span>         * @param dtype<a name="line.656"></a>
+<span class="sourceLineNo">657</span>         * @return a new dataset<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * <a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.659"></a>
+<span class="sourceLineNo">660</span>         *             such as {@link #createRange(Class, double, double, double)} <a name="line.660"></a>
+<span class="sourceLineNo">661</span>         */<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Deprecated<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public static Dataset ones(final Dataset dataset, final int dtype) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                final int[] shape = dataset.getShapeRef();<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                final int isize = DTypeUtils.isDTypeElemental(dtype) ? 1 :dataset.getElementsPerItem();<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>                return ones(isize, shape, dtype);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span><a name="line.669"></a>
+<span class="sourceLineNo">670</span>        /**<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         * @param shape<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         * @return a new double dataset of given shape, filled with ones<a name="line.672"></a>
+<span class="sourceLineNo">673</span>         */<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        public static DoubleDataset ones(final int... shape) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                return ones(DoubleDataset.class, shape);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        /**<a name="line.678"></a>
+<span class="sourceLineNo">679</span>         * @param shape<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * @param dtype<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         * @return a new dataset of given shape and type, filled with ones<a name="line.681"></a>
+<span class="sourceLineNo">682</span>         * <a name="line.682"></a>
+<span class="sourceLineNo">683</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.683"></a>
+<span class="sourceLineNo">684</span>         *             such as {@link #ones(int[], Class)} <a name="line.684"></a>
+<span class="sourceLineNo">685</span>         */<a name="line.685"></a>
+<span class="sourceLineNo">686</span>        @Deprecated<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        public static Dataset ones(final int[] shape, final int dtype) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                switch (dtype) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                case Dataset.BOOL:<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        return BooleanDataset.ones(shape);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                case Dataset.INT8:<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        return ByteDataset.ones(shape);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                case Dataset.INT16:<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        return ShortDataset.ones(shape);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                case Dataset.RGB:<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        return new RGBDataset(shape).fill(1);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                case Dataset.INT32:<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        return IntegerDataset.ones(shape);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                case Dataset.INT64:<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        return LongDataset.ones(shape);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                case Dataset.FLOAT32:<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        return FloatDataset.ones(shape);<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                case Dataset.FLOAT64:<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        return DoubleDataset.ones(shape);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                case Dataset.COMPLEX64:<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        return ComplexFloatDataset.ones(shape);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                case Dataset.COMPLEX128:<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        return ComplexDoubleDataset.ones(shape);<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                throw new IllegalArgumentException("dtype not known");<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>        /**<a name="line.713"></a>
+<span class="sourceLineNo">714</span>         * @param itemSize<a name="line.714"></a>
+<span class="sourceLineNo">715</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.715"></a>
+<span class="sourceLineNo">716</span>         * @param shape<a name="line.716"></a>
+<span class="sourceLineNo">717</span>         * @param dtype<a name="line.717"></a>
+<span class="sourceLineNo">718</span>         * @return a new dataset of given item size, shape and type, filled with ones<a name="line.718"></a>
+<span class="sourceLineNo">719</span>         * <a name="line.719"></a>
+<span class="sourceLineNo">720</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.720"></a>
+<span class="sourceLineNo">721</span>         *             such as {@link #ones(Class, int...)} <a name="line.721"></a>
+<span class="sourceLineNo">722</span>         */<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Deprecated<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public static Dataset ones(final int itemSize, final int[] shape, final int dtype) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                if (itemSize == 1) {<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        return ones(shape, dtype);<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                }<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                switch (dtype) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                case Dataset.INT8:<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                case Dataset.ARRAYINT8:<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        return CompoundByteDataset.ones(itemSize, shape);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                case Dataset.INT16:<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                case Dataset.ARRAYINT16:<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        return CompoundShortDataset.ones(itemSize, shape);<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                case Dataset.RGB:<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        if (itemSize != 3) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                throw new IllegalArgumentException("Number of elements not compatible with RGB type");<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        return new RGBDataset(shape).fill(1);<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                case Dataset.INT32:<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                case Dataset.ARRAYINT32:<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        return CompoundIntegerDataset.ones(itemSize, shape);<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                case Dataset.INT64:<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                case Dataset.ARRAYINT64:<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        return CompoundLongDataset.ones(itemSize, shape);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                case Dataset.FLOAT32:<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                case Dataset.ARRAYFLOAT32:<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        return CompoundFloatDataset.ones(itemSize, shape);<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                case Dataset.FLOAT64:<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                case Dataset.ARRAYFLOAT64:<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        return CompoundDoubleDataset.ones(itemSize, shape);<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                case Dataset.COMPLEX64:<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        if (itemSize != 2) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        return ComplexFloatDataset.ones(shape);<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                case Dataset.COMPLEX128:<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        if (itemSize != 2) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                throw new IllegalArgumentException("Number of elements not compatible with complex type");<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        return ComplexDoubleDataset.ones(shape);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                }<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                throw new IllegalArgumentException("dtype not a known compound type");<a name="line.763"></a>
+<span class="sourceLineNo">764</span>        }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>        /**<a name="line.766"></a>
+<span class="sourceLineNo">767</span>         * Create a 1D dataset of linearly spaced values in closed interval<a name="line.767"></a>
+<span class="sourceLineNo">768</span>         * <a name="line.768"></a>
+<span class="sourceLineNo">769</span>         * @param start<a name="line.769"></a>
+<span class="sourceLineNo">770</span>         * @param stop stop value is included<a name="line.770"></a>
+<span class="sourceLineNo">771</span>         * @param length number of points<a name="line.771"></a>
+<span class="sourceLineNo">772</span>         * @param dtype<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @return dataset with linearly spaced values<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * <a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.775"></a>
+<span class="sourceLineNo">776</span>         *             such as {@link #createLinearSpace(Class, double, double, int)} <a name="line.776"></a>
+<span class="sourceLineNo">777</span>         */<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Deprecated<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public static Dataset createLinearSpace(final double start, final double stop, final int length, final int dtype) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                if (length &lt; 1) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        throw new IllegalArgumentException("Length is less than one");<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                } else if (length == 1) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                        return createFromObject(dtype, start);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                } else {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        Dataset ds = zeros(new int[] {length}, dtype);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        double num = stop - start;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        double den = length - 1;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        double value;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>        <a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                value = start + (num * i) / den;<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                ds.setObjectAbs(i, value);<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        }<a name="line.793"></a>
+<span class="sourceLineNo">794</span>        <a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        return ds;<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        /**<a name="line.799"></a>
+<span class="sourceLineNo">800</span>         * Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to<a name="line.800"></a>
+<span class="sourceLineNo">801</span>         * determine the factor between values: factor = base ** step, where step is the interval between linearly<a name="line.801"></a>
+<span class="sourceLineNo">802</span>         * spaced sequence of points<a name="line.802"></a>
+<span class="sourceLineNo">803</span>         * <a name="line.803"></a>
+<span class="sourceLineNo">804</span>         * @param start<a name="line.804"></a>
+<span class="sourceLineNo">805</span>         * @param stop stop value is included<a name="line.805"></a>
+<span class="sourceLineNo">806</span>         * @param length number of points<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * @param base<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * @param dtype<a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @return dataset with logarithmically spaced values<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         * <a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @deprecated Please use the class-based methods in DatasetFactory, <a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *             such as {@link #createLogSpace(Class, double, double, int, double)} <a name="line.812"></a>
+<span class="sourceLineNo">813</span>         */<a name="line.813"></a>
+<span class="sourceLineNo">814</span>        @Deprecated<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        public static Dataset createLogSpace(final double start, final double stop, final int length, final double base, final int dtype) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                if (length &lt; 1) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        throw new IllegalArgumentException("Length is less than one");<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                } else if (length == 1) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        return createFromObject(dtype, Math.pow(base, start));<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                } else {<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        Dataset ds = zeros(new int[] {length}, dtype);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        double step = (stop - start) / (length - 1);<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        double value;<a name="line.823"></a>
+<span class="sourceLineNo">824</span>        <a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                value = start + i * step;<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                ds.setObjectAbs(i, Math.pow(base, value));<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        }<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        <a name="line.829"></a>
+<span class="sourceLineNo">830</span>                        return ds;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        }<a name="line.832"></a>
+<span class="sourceLineNo">833</span><a name="line.833"></a>
+<span class="sourceLineNo">834</span>        /**<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * Create dataset with items ranging from 0 up to given stop in steps of 1<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * @param clazz<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.837"></a>
+<span class="sourceLineNo">838</span>         * @return a new dataset of given shape and type, filled with values determined by parameters<a name="line.838"></a>
+<span class="sourceLineNo">839</span>         */<a name="line.839"></a>
+<span class="sourceLineNo">840</span>        @SuppressWarnings("unchecked")<a name="line.840"></a>
+<span class="sourceLineNo">841</span>        public static &lt;T extends Dataset&gt; T createRange(Class&lt;T&gt; clazz, final double stop) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                return (T) createRange(0, stop, 1, DTypeUtils.getDType(clazz));<a name="line.842"></a>
+<span class="sourceLineNo">843</span>        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span><a name="line.844"></a>
+<span class="sourceLineNo">845</span>        /**<a name="line.845"></a>
+<span class="sourceLineNo">846</span>         * Create dataset with items ranging from given start up to given stop in given steps<a name="line.846"></a>
+<span class="sourceLineNo">847</span>         * @param clazz dataset class<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         * @param start<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         * @param step spacing between items<a name="line.850"></a>
+<span class="sourceLineNo">851</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.851"></a>
+<span class="sourceLineNo">852</span>         */<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        @SuppressWarnings("unchecked")<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        public static &lt;T extends Dataset&gt; T createRange(Class&lt;T&gt; clazz, final double start, final double stop, final double step) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                return (T) createRange(start, stop, step, DTypeUtils.getDType(clazz));<a name="line.855"></a>
+<span class="sourceLineNo">856</span>        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>        /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>         * Create compound dataset with items ranging from 0 up to given stop in steps of 1<a name="line.859"></a>
+<span class="sourceLineNo">860</span>         * @param itemSize<a name="line.860"></a>
+<span class="sourceLineNo">861</span>         * @param clazz compound dataset class<a name="line.861"></a>
+<span class="sourceLineNo">862</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.862"></a>
+<span class="sourceLineNo">863</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.863"></a>
+<span class="sourceLineNo">864</span>         * @since 2.1<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         */<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        @SuppressWarnings("unchecked")<a name="line.866"></a>
+<span class="sourceLineNo">867</span>        public static &lt;T extends CompoundDataset&gt; T createRange(final int itemSize, Class&lt;T&gt; clazz, final double stop) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                return (T) createRange(itemSize, 0, stop, 1, DTypeUtils.getDType(clazz));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>        /**<a name="line.871"></a>
+<span class="sourceLineNo">872</span>         * Create compound dataset with items ranging from given start up to given stop in given steps<a name="line.872"></a>
+<span class="sourceLineNo">873</span>         * @param itemSize<a name="line.873"></a>
+<span class="sourceLineNo">874</span>         * @param clazz compound dataset class<a name="line.874"></a>
+<span class="sourceLineNo">875</span>         * @param start<a name="line.875"></a>
+<span class="sourceLineNo">876</span>         * @param stop stop value is &lt;strong&gt;not&lt;/strong&gt; included<a name="line.876"></a>
+<span class="sourceLineNo">877</span>         * @param step spacing between items<a name="line.877"></a>
+<span class="sourceLineNo">878</span>         * @return a new 1D dataset of given class, filled with values determined by parameters<a name="line.878"></a>
+<span class="sourceLineNo">879</span>         * @since 2.1<a name="line.879"></a>
+<span class="sourceLineNo">880</span>         */<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        @SuppressWarnings("unchecked")<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public static &lt;T extends CompoundDataset&gt; T createRange(final int itemSize, Class&lt;T&gt; clazz, final double start, final double stop, final double step) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                return (T) createRange(itemSize, start, stop, step, DTypeUtils.getDType(clazz));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>        /**<a name="line.886"></a>
+<span class="sourceLineNo">887</span>         * Create a dataset from object<a name="line.887"></a>
+<span class="sourceLineNo">888</span>         * @param clazz dataset class<a name="line.888"></a>
+<span class="sourceLineNo">889</span>         * @param obj<a name="line.889"></a>
+<span class="sourceLineNo">890</span>         *            can be a Java list, array or Number<a name="line.890"></a>
+<span class="sourceLineNo">891</span>         * @return dataset<a name="line.891"></a>
+<span class="sourceLineNo">892</span>         * @throws IllegalArgumentException if dataset class is not known<a name="line.892"></a>
+<span class="sourceLineNo">893</span>         * @since 2.1<a name="line.893"></a>
+<span class="sourceLineNo">894</span>         */<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        @SuppressWarnings("unchecked")<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        public static &lt;T extends Dataset&gt; T createFromObject(Class&lt;T&gt; clazz, Object obj) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                return (T) createFromObject(1, DTypeUtils.getDType(clazz), obj, null);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        }<a name="line.898"></a>
+<span class="sourceLineNo">899</span><a name="line.899"></a>
+<span class="sourceLineNo">900</span><a name="line.900"></a>
+<span class="sourceLineNo">901</span>        /**<a name="line.901"></a>
+<span class="sourceLineNo">902</span>         * Create a dataset from object<a name="line.902"></a>
+<span class="sourceLineNo">903</span>         * @param clazz dataset class<a name="line.903"></a>
+<span class="sourceLineNo">904</span>         * @param obj<a name="line.904"></a>
+<span class="sourceLineNo">905</span>         *            can be a Java list, array or Number<a name="line.905"></a>
+<span class="sourceLineNo">906</span>         * @param shape can be null<a name="line.906"></a>
+<span class="sourceLineNo">907</span>         * @return dataset<a name="line.907"></a>
+<span class="sourceLineNo">908</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.908"></a>
+<span class="sourceLineNo">909</span>         */<a name="line.909"></a>
+<span class="sourceLineNo">910</span>        @SuppressWarnings("unchecked")<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        public static &lt;T extends Dataset&gt; T createFromObject(Class&lt;T&gt; clazz, Object obj, int... shape) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                return (T) createFromObject(1, DTypeUtils.getDType(clazz), obj, shape);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>        /**<a name="line.915"></a>
+<span class="sourceLineNo">916</span>         * Create a compound dataset from object<a name="line.916"></a>
+<span class="sourceLineNo">917</span>         * @param itemSize<a name="line.917"></a>
+<span class="sourceLineNo">918</span>         * @param clazz dataset class<a name="line.918"></a>
+<span class="sourceLineNo">919</span>         * @param obj<a name="line.919"></a>
+<span class="sourceLineNo">920</span>         *            can be a Java list, array or Number<a name="line.920"></a>
+<span class="sourceLineNo">921</span>         * @param shape can be null<a name="line.921"></a>
+<span class="sourceLineNo">922</span>         * @return dataset<a name="line.922"></a>
+<span class="sourceLineNo">923</span>         * @throws IllegalArgumentException if dataset type is not known<a name="line.923"></a>
+<span class="sourceLineNo">924</span>         */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        @SuppressWarnings("unchecked")<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        public static &lt;T extends Dataset&gt; T createFromObject(final int itemSize, Class&lt;T&gt; clazz, Object obj, int... shape) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                return (T) createFromObject(itemSize, DTypeUtils.getDType(clazz), obj, shape);<a name="line.927"></a>
+<span class="sourceLineNo">928</span>        }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>        /**<a name="line.930"></a>
+<span class="sourceLineNo">931</span>         * Create dataset of given class from list<a name="line.931"></a>
+<span class="sourceLineNo">932</span>         *<a name="line.932"></a>
+<span class="sourceLineNo">933</span>         * @param clazz dataset class<a name="line.933"></a>
+<span class="sourceLineNo">934</span>         * @param objectList<a name="line.934"></a>
+<span class="sourceLineNo">935</span>         * @return dataset filled with values from list<a name="line.935"></a>
+<span class="sourceLineNo">936</span>         */<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        @SuppressWarnings("unchecked")<a name="line.937"></a>
+<span class="sourceLineNo">938</span>        public static &lt;T extends Dataset&gt; T createFromList(Class&lt;T&gt; clazz, List&lt;?&gt; objectList) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                return (T) createFromList(DTypeUtils.getDType(clazz), objectList);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>        }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>        /**<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         * Create compound dataset of given class from given parts<a name="line.943"></a>
+<span class="sourceLineNo">944</span>         *<a name="line.944"></a>
+<span class="sourceLineNo">945</span>         * @param clazz<a name="line.945"></a>
+<span class="sourceLineNo">946</span>         * @param objects<a name="line.946"></a>
+<span class="sourceLineNo">947</span>         * @return compound dataset<a name="line.947"></a>
+<span class="sourceLineNo">948</span>         */<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        @SuppressWarnings("unchecked")<a name="line.949"></a>
+<span class="sourceLineNo">950</span>        public static &lt;T extends Dataset&gt; T createCompoundDataset(Class&lt;T&gt; clazz, Object... objects) {<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                return (T) createCompoundDataset(DTypeUtils.getDType(clazz), objects);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span><a name="line.953"></a>
+<span class="sourceLineNo">954</span>        /**<a name="line.954"></a>
+<span class="sourceLineNo">955</span>         * Create complex dataset of given class from real and imaginary parts<a name="line.955"></a>
+<span class="sourceLineNo">956</span>         *<a name="line.956"></a>
+<span class="sourceLineNo">957</span>         * @param clazz dataset class<a name="line.957"></a>
+<span class="sourceLineNo">958</span>         * @param real<a name="line.958"></a>
+<span class="sourceLineNo">959</span>         * @param imag<a name="line.959"></a>
+<span class="sourceLineNo">960</span>         * @return complex dataset<a name="line.960"></a>
+<span class="sourceLineNo">961</span>         */<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        @SuppressWarnings("unchecked")<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        public static &lt;T extends Dataset&gt; T createComplexDataset(Class&lt;T&gt; clazz, Object real, Object imag) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                return (T) createComplexDataset(DTypeUtils.getDType(clazz), real, imag);<a name="line.964"></a>
+<span class="sourceLineNo">965</span>        }<a name="line.965"></a>
+<span class="sourceLineNo">966</span><a name="line.966"></a>
+<span class="sourceLineNo">967</span>        /**<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         * @param clazz dataset class<a name="line.968"></a>
+<span class="sourceLineNo">969</span>         * @param shape<a name="line.969"></a>
+<span class="sourceLineNo">970</span>         * @return a new dataset of given shape and class, filled with zeros<a name="line.970"></a>
+<span class="sourceLineNo">971</span>         */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        @SuppressWarnings("unchecked")<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        public static &lt;T extends Dataset&gt; T zeros(Class&lt;T&gt; clazz, int... shape) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                return (T) zeros(shape, DTypeUtils.getDType(clazz));<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        }<a name="line.975"></a>
+<span class="sourceLineNo">976</span><a name="line.976"></a>
+<span class="sourceLineNo">977</span>        /**<a name="line.977"></a>
+<span class="sourceLineNo">978</span>         * @param itemSize<a name="line.978"></a>
+<span class="sourceLineNo">979</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.979"></a>
+<span class="sourceLineNo">980</span>         * @param clazz dataset class<a name="line.980"></a>
+<span class="sourceLineNo">981</span>         * @param shape<a name="line.981"></a>
+<span class="sourceLineNo">982</span>         * @return a new dataset of given item size, shape and class, filled with zeros<a name="line.982"></a>
+<span class="sourceLineNo">983</span>         */<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        @SuppressWarnings("unchecked")<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        public static &lt;T extends Dataset&gt; T zeros(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                return (T) zeros(itemSize, shape, DTypeUtils.getDType(clazz));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>        /**<a name="line.989"></a>
+<span class="sourceLineNo">990</span>         * @param dataset<a name="line.990"></a>
+<span class="sourceLineNo">991</span>         * @param clazz dataset class<a name="line.991"></a>
+<span class="sourceLineNo">992</span>         * @return a new dataset of given class with same shape as input dataset, filled with zeros<a name="line.992"></a>
+<span class="sourceLineNo">993</span>         */<a name="line.993"></a>
+<span class="sourceLineNo">994</span>        @SuppressWarnings("unchecked")<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        public static &lt;T extends Dataset&gt; T zeros(Dataset dataset, Class&lt;T&gt; clazz) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                return (T) zeros(dataset, DTypeUtils.getDType(clazz));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>        /**<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>         * @param itemSize<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>         * @param clazz compound dataset class<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>         * @param shape<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>         * @return a new compound dataset of given item size, shape and class, filled with zeros<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>         * @since 2.0<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         */<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>        @SuppressWarnings("unchecked")<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        public static &lt;T extends CompoundDataset&gt; T compoundZeros(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                return (T) compoundZeros(itemSize, shape, DTypeUtils.getDType(clazz));<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        /**<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>         * @param clazz dataset class<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>         * @param shape<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>         * @return a new dataset of given shape and class, filled with ones<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         */<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>        @SuppressWarnings("unchecked")<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        public static &lt;T extends Dataset&gt; T ones(Class&lt;T&gt; clazz, int... shape) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                return (T) ones(shape, DTypeUtils.getDType(clazz));<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>        /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>         * @param itemSize<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>         *            if equal to 1, then non-compound dataset is returned<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>         * @param clazz dataset class<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * @param shape<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @return a new dataset of given item size, shape and class, filled with ones<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         */<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>        @SuppressWarnings("unchecked")<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public static &lt;T extends Dataset&gt; T ones(int itemSize, Class&lt;T&gt; clazz, int... shape) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                return (T) ones(itemSize, shape, DTypeUtils.getDType(clazz));<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span><a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>        /**<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         * @param dataset<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param clazz dataset class<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @return a new dataset of given class with same shape as input dataset, filled with ones<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         */<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        @SuppressWarnings("unchecked")<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        public static &lt;T extends Dataset&gt; T ones(Dataset dataset, Class&lt;T&gt; clazz) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return (T) ones(dataset, DTypeUtils.getDType(clazz));<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * Create a 1D dataset of linearly spaced values in closed interval<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * <a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         * @param clazz dataset class<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * @param start<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         * @param stop stop value is included<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>         * @param length number of points<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>         * @return dataset with linearly spaced values<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>         */<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        @SuppressWarnings("unchecked")<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public static &lt;T extends Dataset&gt; T createLinearSpace(Class&lt;T&gt; clazz, final double start, final double stop, final int length) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                return (T) createLinearSpace(start, stop, length, DTypeUtils.getDType(clazz));<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        /**<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         * Create a 1D dataset of logarithmically spaced values in closed interval. The base value is used to<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * determine the factor between values: factor = base ** step, where step is the interval between linearly<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * spaced sequence of points<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * <a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         * @param start<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>         * @param stop stop value is included<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>         * @param length number of points<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>         * @param base<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>         * @return dataset with logarithmically spaced values<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>         */<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        @SuppressWarnings("unchecked")<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>        public static &lt;T extends Dataset&gt; T createLogSpace(Class&lt;T&gt; clazz, final double start, final double stop, final int length, final double base) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                return (T) createLogSpace(start, stop, length, base, DTypeUtils.getDType(clazz));<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>}<a name="line.1072"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DatasetUtils.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DatasetUtils.html
new file mode 100644
index 0000000..a3d17c7
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DatasetUtils.html
@@ -0,0 +1,2807 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.reflect.Array;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.Comparator;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.List;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.math3.util.MathArrays;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.DatasetException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.slf4j.Logger;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.slf4j.LoggerFactory;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Utilities for manipulating datasets<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>@SuppressWarnings("unchecked")<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class DatasetUtils {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * Setup the logging facilities<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        transient protected static final Logger utilsLogger = LoggerFactory.getLogger(DatasetUtils.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * Append copy of dataset with another dataset along n-th axis<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         *<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param a<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param b<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param axis<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         *            number of axis (negative number counts from last)<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @return appended dataset<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public static Dataset append(IDataset a, IDataset b, int axis) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int[] ashape = a.getShape();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int rank = ashape.length;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final int[] bshape = b.getShape();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (rank != bshape.length) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        throw new IllegalArgumentException("Incompatible number of dimensions");<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                axis = ShapeUtils.checkAxis(rank, axis);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        if (i != axis &amp;&amp; ashape[i] != bshape[i]) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                throw new IllegalArgumentException("Incompatible dimensions");<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                final int[] nshape = new int[rank];<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        nshape[i] = ashape[i];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                nshape[axis] += bshape[axis];<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                final int ot = DTypeUtils.getDType(b);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final int dt = DTypeUtils.getDType(a);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                @SuppressWarnings("deprecation")<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                Dataset ds = DatasetFactory.zeros(a.getElementsPerItem(), nshape, dt &gt; ot ? dt : ot);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                IndexIterator iter = ds.getIterator(true);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                int[] pos = iter.getPos();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                while (iter.hasNext()) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        int d = ashape[axis];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        if (pos[axis] &lt; d) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                ds.setObjectAbs(iter.index, a.getObject(pos));<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } else {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                pos[axis] -= d;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                ds.setObjectAbs(iter.index, b.getObject(pos));<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                pos[axis] += d;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                return ds;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>        /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * Changes specific items of dataset by replacing them with other array<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param a<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param indices dataset interpreted as integers<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param values<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @return changed dataset<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         */<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        public static &lt;T extends Dataset&gt; T put(final T a, final Dataset indices, Object values) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                IndexIterator it = indices.getIterator();<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                Dataset vd = DatasetFactory.createFromObject(values).flatten();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                int vlen = vd.getSize();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                int v = 0;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                while (it.hasNext()) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        if (v &gt;= vlen) v -= vlen;<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        a.setObjectAbs((int) indices.getElementLongAbs(it.index), vd.getObjectAbs(v++));<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                return a;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Changes specific items of dataset by replacing them with other array<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param a<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param indices<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @param values<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @return changed dataset<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public static &lt;T extends Dataset&gt; T put(final T a, final int[] indices, Object values) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                int ilen = indices.length;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                Dataset vd = DatasetFactory.createFromObject(values).flatten();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                int vlen = vd.getSize();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                for (int i = 0, v= 0; i &lt; ilen; i++) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        if (v &gt;= vlen) v -= vlen;<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        a.setObjectAbs(indices[i], vd.getObjectAbs(v++));<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                return a;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>        /**<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * Take items from dataset along an axis<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @param indices dataset interpreted as integers<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param axis if null, then use flattened view<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @return a sub-array<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public static &lt;T extends Dataset&gt; T take(final T a, final Dataset indices, Integer axis) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                IntegerDataset indexes = (IntegerDataset) indices.flatten().cast(Dataset.INT32);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                return take(a, indexes.getData(), axis);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Take items from dataset along an axis<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param indices<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @param axis if null, then use flattened view<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @return a sub-array<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         */<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        @SuppressWarnings("deprecation")<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public static &lt;T extends Dataset&gt; T take(final T a, final int[] indices, Integer axis) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                if (indices == null || indices.length == 0) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        utilsLogger.error("No indices given");<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException("No indices given");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int[] ashape = a.getShape();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                final int rank = ashape.length;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                final int at = a.getDType();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                final int ilen = indices.length;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                final int is = a.getElementsPerItem();<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                Dataset result;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                if (axis == null) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        ashape = new int[1];<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        ashape[0] = ilen;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        result = DatasetFactory.zeros(is, ashape, at);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        Serializable src = a.getBuffer();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                ((AbstractDataset) result).setItemDirect(i, indices[i], src);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                } else {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        axis = a.checkAxis(axis);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        ashape[axis] = ilen;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        result = DatasetFactory.zeros(is, ashape, at);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        int[] dpos = new int[rank];<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        int[] spos = new int[rank];<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        boolean[] axes = new boolean[rank];<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        Arrays.fill(axes, true);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        axes[axis] = false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        Serializable src = a.getBuffer();<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        for (int i = 0; i &lt; ilen; i++) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                spos[axis] = indices[i];<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                dpos[axis] = i;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                SliceIterator siter = a.getSliceIteratorFromAxes(spos, axes);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                SliceIterator diter = result.getSliceIteratorFromAxes(dpos, axes);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                        ((AbstractDataset) result).setItemDirect(diter.index, siter.index, src);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                result.setDirty();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return (T) result;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Construct a dataset that contains the original dataset repeated the number<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * of times in each axis given by corresponding entries in the reps array<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param a<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param reps<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @return tiled dataset<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         */<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        public static Dataset tile(final IDataset a, int... reps) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                int[] shape = a.getShape();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                int rank = shape.length;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                final int rlen = reps.length;<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>                // expand shape<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                if (rank &lt; rlen) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        int[] newShape = new int[rlen];<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        int extraRank = rlen - rank;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        for (int i = 0; i &lt; extraRank; i++) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                newShape[i] = 1;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                newShape[i+extraRank] = shape[i];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        shape = newShape;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        rank = rlen;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                } else if (rank &gt; rlen) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        int[] newReps = new int[rank];<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        int extraRank = rank - rlen;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        for (int i = 0; i &lt; extraRank; i++) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                newReps[i] = 1;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                        for (int i = 0; i &lt; rlen; i++) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                newReps[i+extraRank] = reps[i];<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        reps = newReps;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>                // calculate new shape<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                int[] newShape = new int[rank];<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        newShape[i] = shape[i]*reps[i];<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @SuppressWarnings("deprecation")<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                Dataset tdata = DatasetFactory.zeros(a.getElementsPerItem(), newShape, DTypeUtils.getDType(a));<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>                // decide which way to put slices<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                boolean manyColumns;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                if (rank == 1)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        manyColumns = true;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                else<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        manyColumns = shape[rank-1] &gt; 64;<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                if (manyColumns) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        // generate each start point and put a slice in<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        IndexIterator iter = tdata.getSliceIterator(null, null, shape);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        SliceIterator siter = (SliceIterator) tdata.getSliceIterator(null, shape, null);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        final int[] pos = iter.getPos();<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        while (iter.hasNext()) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                siter.setStart(pos);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                tdata.setSlice(a, siter);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>                } else {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        // for each value, set slice given by repeats<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        final int[] skip = new int[rank];<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                if (reps[i] == 1) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                        skip[i] = newShape[i];<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                } else {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                        skip[i] = shape[i];<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        Dataset aa = convertToDataset(a);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        IndexIterator ita = aa.getIterator(true);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        final int[] pos = ita.getPos();<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        final int[] sstart = new int[rank];<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        final int extra = rank - pos.length;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        for (int i = 0; i &lt; extra; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                sstart[i] = 0;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        SliceIterator siter = (SliceIterator) tdata.getSliceIterator(sstart, null, skip);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        while (ita.hasNext()) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                for (int i = 0; i &lt; pos.length; i++) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                        sstart[i + extra] = pos[i];<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                siter.setStart(sstart);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                tdata.setSlice(aa.getObjectAbs(ita.index), siter);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return tdata;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * Permute copy of dataset's axes so that given order is old order:<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * &lt;pre&gt;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         *  axisPerm = (p(0), p(1),...) =&gt; newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *  such that n(i) = o(p(i)) for all i<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * &lt;/pre&gt;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         * running along the old dataset's 2nd dimension and the new 2nd is the old 1st.<a name="line.293"></a>
+<span class="sourceLineNo">294</span>         * The 3rd dimension is left unchanged.<a name="line.294"></a>
+<span class="sourceLineNo">295</span>         *<a name="line.295"></a>
+<span class="sourceLineNo">296</span>         * @param a<a name="line.296"></a>
+<span class="sourceLineNo">297</span>         * @param axes if null or zero length then axes order reversed<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * @return remapped copy of data<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         */<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        public static Dataset transpose(final IDataset a, int... axes) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                return convertToDataset(a).transpose(axes);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>        /**<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         * Swap two axes in dataset<a name="line.305"></a>
+<span class="sourceLineNo">306</span>         * @param a<a name="line.306"></a>
+<span class="sourceLineNo">307</span>         * @param axis1<a name="line.307"></a>
+<span class="sourceLineNo">308</span>         * @param axis2<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @return swapped dataset<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        public static Dataset swapAxes(final IDataset a, int axis1, int axis2) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                return convertToDataset(a).swapAxes(axis1, axis2);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>        /**<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * @param a<a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @return sorted flattened copy of dataset<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         */<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public static &lt;T extends Dataset&gt; T sort(final T a) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return sort(a, (Integer) null);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * @param a<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * @param axis to sort along, if null then dataset is first flattened<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return dataset sorted along axis<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         */<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        public static &lt;T extends Dataset&gt; T sort(final T a, final Integer axis) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                Dataset s = a.clone();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                return (T) s.sort(axis);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>        /**<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         * Sort in place given dataset and reorder ancillary datasets too<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * @param a dataset to be sorted<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @param b ancillary datasets<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         */<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        public static void sort(Dataset a, Dataset... b) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                if (!DTypeUtils.isDTypeNumerical(a.getDType())) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        throw new UnsupportedOperationException("Sorting non-numerical datasets not supported yet");<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>                // gather all datasets as double dataset copies<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                DoubleDataset s = copy(DoubleDataset.class, a);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                int l = b == null ? 0 : b.length;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                DoubleDataset[] t = new DoubleDataset[l];<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                int n = 0;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                for (int i = 0; i &lt; l; i++) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        if (b[i] != null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                if (!DTypeUtils.isDTypeNumerical(b[i].getDType())) {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        throw new UnsupportedOperationException("Sorting non-numerical datasets not supported yet");<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                t[i] = copy(DoubleDataset.class, b[i]);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                n++;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>                double[][] y = new double[n][];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                for (int i = 0, j = 0; i &lt; l; i++) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        if (t[i] != null) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                                y[j++] = t[i].getData();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>                MathArrays.sortInPlace(s.getData(), y);<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                a.setSlice(s);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                for (int i = 0; i &lt; l; i++) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        if (b[i] != null) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                b[i].setSlice(t[i]);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>        /**<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * Indirectly sort along given axis<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * @param a dataset whose indexes will be sorted<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * @param axis to sort along, if null then dataset is first flattened<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @return indexes<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @since 2.1<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public static IntegerDataset indexSort(Dataset a, Integer axis) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                if (axis == null) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        int size = a.getSize();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Integer[] index = new Integer[size];<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                index[i] = i;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                        final Dataset f = a.flatten(); // is this correct for views??? Check with NumPy<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        Comparator&lt;Integer&gt; cmp = new Comparator&lt;Integer&gt;() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                @Override<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                public int compare(Integer o1, Integer o2) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                        return Double.compare(f.getElementDoubleAbs(o1), f.getElementDoubleAbs(o2));<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        };<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        Arrays.sort(index, cmp);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        return DatasetFactory.createFromObject(IntegerDataset.class, index);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                axis = a.checkAxis(axis);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                final int[] shape = a.getShapeRef();<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                IntegerDataset id = DatasetFactory.zeros(IntegerDataset.class, shape);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                int size = shape[axis];<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                Integer[] index = new Integer[size];<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>                int[] dShape = new int[shape.length];<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                Arrays.fill(dShape, 1);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                dShape[axis] = size;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                final DoubleDataset dd = DatasetFactory.zeros(DoubleDataset.class, dShape);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                final Comparator&lt;Integer&gt; cmp = new Comparator&lt;Integer&gt;() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        @Override<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                        public int compare(Integer o1, Integer o2) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                return Double.compare(dd.getElementDoubleAbs(o1), dd.getElementDoubleAbs(o2));<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                };<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>                SliceND ds = new SliceND(dShape);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                SliceNDIterator it = new SliceNDIterator(new SliceND(shape), axis);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                int[] pos = it.getPos();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                int[] ipos = pos.clone();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                while (it.hasNext()) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        dd.setSlice(a.getSliceView(it.getCurrentSlice()), ds);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                index[i] = i;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        Arrays.sort(index, cmp);<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        System.arraycopy(pos, 0, ipos, 0, pos.length);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                ipos[axis] = i;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                id.set(index[i], ipos);<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return id;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        /**<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         * Concatenate the set of datasets along given axis<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         * @param as<a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * @param axis<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * @return concatenated dataset<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         */<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public static Dataset concatenate(final IDataset[] as, int axis) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                if (as == null || as.length == 0) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        utilsLogger.error("No datasets given");<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                        throw new IllegalArgumentException("No datasets given");<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                }<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                IDataset a = as[0];<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                if (as.length == 1) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        return convertToDataset(a.clone());<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span>                int[] ashape = a.getShape();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                axis = ShapeUtils.checkAxis(ashape.length, axis);<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int at = DTypeUtils.getDType(a);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                int anum = as.length;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                int isize = a.getElementsPerItem();<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>                int i = 1;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                for (; i &lt; anum; i++) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        if (at != DTypeUtils.getDType(as[i])) {<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                utilsLogger.error("Datasets are not of same type");<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                break;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        if (!ShapeUtils.areShapesCompatible(ashape, as[i].getShape(), axis)) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                utilsLogger.error("Datasets' shapes are not equal");<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                break;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                        final int is = as[i].getElementsPerItem();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        if (isize &lt; is)<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                                isize = is;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                if (i &lt; anum) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        utilsLogger.error("Dataset are not compatible");<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        throw new IllegalArgumentException("Datasets are not compatible");<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                }<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>                for (i = 1; i &lt; anum; i++) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        ashape[axis] += as[i].getShape()[axis];<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>                @SuppressWarnings("deprecation")<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                Dataset result = DatasetFactory.zeros(isize, ashape, at);<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>                int[] start = new int[ashape.length];<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                int[] stop = ashape;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                stop[axis] = 0;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                for (i = 0; i &lt; anum; i++) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        IDataset b = as[i];<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        int[] bshape = b.getShape();<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                        stop[axis] += bshape[axis];<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                        result.setSlice(b, start, stop, null);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        start[axis] += bshape[axis];<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>                return result;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        }<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span>        /**<a name="line.503"></a>
+<span class="sourceLineNo">504</span>         * Split a dataset into equal sections along given axis<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param a<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @param sections<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @param axis<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         * @param checkEqual makes sure the division is into equal parts<a name="line.508"></a>
+<span class="sourceLineNo">509</span>         * @return list of split datasets<a name="line.509"></a>
+<span class="sourceLineNo">510</span>         */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        public static List&lt;Dataset&gt; split(final Dataset a, int sections, int axis, final boolean checkEqual) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                int[] ashape = a.getShapeRef();<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                axis = a.checkAxis(axis);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                int imax = ashape[axis];<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                if (checkEqual &amp;&amp; (imax%sections) != 0) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        utilsLogger.error("Number of sections does not divide axis into equal parts");<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                        throw new IllegalArgumentException("Number of sections does not divide axis into equal parts");<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                int n = (imax + sections - 1) / sections;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                int[] indices = new int[sections-1];<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                for (int i = 1; i &lt; sections; i++)<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        indices[i-1] = n*i;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return split(a, indices, axis);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        /**<a name="line.526"></a>
+<span class="sourceLineNo">527</span>         * Split a dataset into parts along given axis<a name="line.527"></a>
+<span class="sourceLineNo">528</span>         * @param a<a name="line.528"></a>
+<span class="sourceLineNo">529</span>         * @param indices<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * @param axis<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         * @return list of split datasets<a name="line.531"></a>
+<span class="sourceLineNo">532</span>         */<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        public static List&lt;Dataset&gt; split(final Dataset a, int[] indices, int axis) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                final int[] ashape = a.getShapeRef();<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                axis = a.checkAxis(axis);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                final int rank = ashape.length;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                final int imax = ashape[axis];<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>                final List&lt;Dataset&gt; result = new ArrayList&lt;Dataset&gt;();<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>                final int[] nshape = ashape.clone();<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                final int is = a.getElementsPerItem();<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>                int oind = 0;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                final int[] start = new int[rank];<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                final int[] stop = new int[rank];<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                final int[] step = new int[rank];<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        start[i] = 0;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        stop[i] = ashape[i];<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        step[i] = 1;<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                }<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                for (int ind : indices) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        if (ind &gt; imax) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                result.add(DatasetFactory.zeros(is, a.getClass(), 0));<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                        } else {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                nshape[axis] = ind - oind;<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                start[axis] = oind;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                stop[axis] = ind;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                Dataset n = DatasetFactory.zeros(is, a.getClass(), nshape);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                IndexIterator iter = a.getSliceIterator(start, stop, step);<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                a.fillDataset(n, iter);<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                result.add(n);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                oind = ind;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>                if (imax &gt; oind) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        nshape[axis] = imax - oind;<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                        start[axis] = oind;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                        stop[axis] = imax;<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                        Dataset n = DatasetFactory.zeros(is, a.getClass(), nshape);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        IndexIterator iter = a.getSliceIterator(start, stop, step);<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>                        a.fillDataset(n, iter);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        result.add(n);<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>                return result;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>        /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         * Constructs a dataset which has its elements along an axis replicated from<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * the original dataset by the number of times given in the repeats array.<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         *<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * By default, axis=-1 implies using a flattened version of the input dataset<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         *<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param a<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param repeats<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param axis<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         * @return dataset<a name="line.592"></a>
+<span class="sourceLineNo">593</span>         */<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        public static &lt;T extends Dataset&gt; T repeat(T a, int[] repeats, int axis) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                Serializable buf = a.getBuffer();<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                int[] shape = a.getShape();<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                int rank = shape.length;<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                final int is = a.getElementsPerItem();<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>                if (axis &gt;= rank) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        utilsLogger.warn("Axis value is out of bounds");<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        throw new IllegalArgumentException("Axis value is out of bounds");<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                }<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>                int alen;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                if (axis &lt; 0) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        alen = a.getSize();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        axis = 0;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        rank = 1;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        shape[0] = alen;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                } else {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        alen = shape[axis];<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                int rlen = repeats.length;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                if (rlen != 1 &amp;&amp; rlen != alen) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        utilsLogger.warn("Repeats array should have length of 1 or match chosen axis");<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        throw new IllegalArgumentException("Repeats array should have length of 1 or match chosen axis");<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>                for (int i = 0; i &lt; rlen; i++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        if (repeats[i] &lt; 0) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                utilsLogger.warn("Negative repeat value is not allowed");<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                throw new IllegalArgumentException("Negative repeat value is not allowed");<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                }<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>                int[] newShape = new int[rank];<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                for (int i = 0; i &lt; rank; i ++)<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                        newShape[i] = shape[i];<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>                // do single repeat separately<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                if (repeats.length == 1) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        newShape[axis] *= repeats[0];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                } else {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        int nlen = 0;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        for (int i = 0; i &lt; alen; i++) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                nlen += repeats[i];<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                        newShape[axis] = nlen;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>                @SuppressWarnings("deprecation")<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                Dataset rdata = DatasetFactory.zeros(is, newShape, a.getDType());<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                Serializable nbuf = rdata.getBuffer();<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>                int csize = is; // chunk size<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                for (int i = axis+1; i &lt; rank; i++) {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                        csize *= newShape[i];<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                int nout = 1;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                for (int i = 0; i &lt; axis; i++) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        nout *= newShape[i];<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>                int oi = 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                int ni = 0;<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                if (rlen == 1) { // do single repeat separately<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                        for (int i = 0; i &lt; nout; i++) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                for (int j = 0; j &lt; shape[axis]; j++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                        for (int k = 0; k &lt; repeats[0]; k++) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                                System.arraycopy(buf, oi, nbuf, ni, csize);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                ni += csize;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                        oi += csize;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                } else {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        for (int i = 0; i &lt; nout; i++) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                for (int j = 0; j &lt; shape[axis]; j++) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                        for (int k = 0; k &lt; repeats[j]; k++) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                                System.arraycopy(buf, oi, nbuf, ni, csize);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                                ni += csize;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                        }<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        oi += csize;<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>                return (T) rdata;<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        /**<a name="line.682"></a>
+<span class="sourceLineNo">683</span>         * Resize a dataset<a name="line.683"></a>
+<span class="sourceLineNo">684</span>         * @param a<a name="line.684"></a>
+<span class="sourceLineNo">685</span>         * @param shape<a name="line.685"></a>
+<span class="sourceLineNo">686</span>         * @return new dataset with new shape and items that are truncated or repeated, as necessary<a name="line.686"></a>
+<span class="sourceLineNo">687</span>         */<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        public static &lt;T extends Dataset&gt; T resize(final T a, final int... shape) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                int size = a.getSize();<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                @SuppressWarnings("deprecation")<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                Dataset rdata = DatasetFactory.zeros(a.getElementsPerItem(), shape, a.getDType());<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                IndexIterator it = rdata.getIterator();<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                while (it.hasNext()) {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        rdata.setObjectAbs(it.index, a.getObjectAbs(it.index % size));<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>                return (T) rdata;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>        /**<a name="line.700"></a>
+<span class="sourceLineNo">701</span>         * Copy and cast a dataset<a name="line.701"></a>
+<span class="sourceLineNo">702</span>         *<a name="line.702"></a>
+<span class="sourceLineNo">703</span>         * @param d<a name="line.703"></a>
+<span class="sourceLineNo">704</span>         *            The dataset to be copied<a name="line.704"></a>
+<span class="sourceLineNo">705</span>         * @param dtype dataset type<a name="line.705"></a>
+<span class="sourceLineNo">706</span>         * @return copied dataset of given type<a name="line.706"></a>
+<span class="sourceLineNo">707</span>         */<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        public static Dataset copy(final IDataset d, final int dtype) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                Dataset a = convertToDataset(d);<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>                Dataset c = null;<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                try {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        // copy across the data<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                        switch (dtype) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        case Dataset.STRING:<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                c = new StringDataset(a);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                break;<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        case Dataset.BOOL:<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                c = new BooleanDataset(a);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                break;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                        case Dataset.INT8:<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                if (a instanceof CompoundDataset)<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                        c = new CompoundByteDataset(a);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                else<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                        c = new ByteDataset(a);<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                break;<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        case Dataset.INT16:<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                if (a instanceof CompoundDataset)<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                        c = new CompoundShortDataset(a);<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                else<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                        c = new ShortDataset(a);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                break;<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        case Dataset.INT32:<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                if (a instanceof CompoundDataset)<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                        c = new CompoundIntegerDataset(a);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                else<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                                        c = new IntegerDataset(a);<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                break;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        case Dataset.INT64:<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                if (a instanceof CompoundDataset)<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                        c = new CompoundLongDataset(a);<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                                else<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                                        c = new LongDataset(a);<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                                break;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        case Dataset.ARRAYINT8:<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                if (a instanceof CompoundDataset)<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                                        c = new CompoundByteDataset((CompoundDataset) a);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                                else<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                                        c = new CompoundByteDataset(a);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                                break;<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                        case Dataset.ARRAYINT16:<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                                if (a instanceof CompoundDataset)<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                                        c = new CompoundShortDataset((CompoundDataset) a);<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                else<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                        c = new CompoundShortDataset(a);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                break;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        case Dataset.ARRAYINT32:<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                if (a instanceof CompoundDataset)<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                                        c = new CompoundIntegerDataset((CompoundDataset) a);<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                                else<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                        c = new CompoundIntegerDataset(a);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                break;<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        case Dataset.ARRAYINT64:<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                                if (a instanceof CompoundDataset)<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                        c = new CompoundLongDataset((CompoundDataset) a);<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                                else<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                                        c = new CompoundLongDataset(a);<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                break;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        case Dataset.FLOAT32:<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                                c = new FloatDataset(a);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                                break;<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        case Dataset.FLOAT64:<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                c = new DoubleDataset(a);<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                break;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        case Dataset.ARRAYFLOAT32:<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                                if (a instanceof CompoundDataset)<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                                        c = new CompoundFloatDataset((CompoundDataset) a);<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                                else<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                                        c = new CompoundFloatDataset(a);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                break;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        case Dataset.ARRAYFLOAT64:<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                                if (a instanceof CompoundDataset)<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                        c = new CompoundDoubleDataset((CompoundDataset) a);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                else<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        c = new CompoundDoubleDataset(a);<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                break;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                        case Dataset.COMPLEX64:<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                c = new ComplexFloatDataset(a);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                break;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                        case Dataset.COMPLEX128:<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                c = new ComplexDoubleDataset(a);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                break;<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        case Dataset.RGB:<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                if (a instanceof CompoundDataset)<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                                        c = RGBDataset.createFromCompoundDataset((CompoundDataset) a);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                else<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                        c = new RGBDataset(a);<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                break;<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        default:<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                utilsLogger.error("Dataset of unknown type!");<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                break;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                } catch (OutOfMemoryError e) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        utilsLogger.error("Not enough memory available to create dataset");<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        throw new OutOfMemoryError("Not enough memory available to create dataset");<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                }<a name="line.806"></a>
+<span class="sourceLineNo">807</span><a name="line.807"></a>
+<span class="sourceLineNo">808</span>                return c;<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>        /**<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * Copy and cast a dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         *<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @param clazz dataset class<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @param d<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         *            The dataset to be copied<a name="line.816"></a>
+<span class="sourceLineNo">817</span>         * @return copied dataset of given type<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         */<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public static &lt;T extends Dataset&gt; T copy(Class&lt;T&gt; clazz, final IDataset d) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return (T) copy(d, DTypeUtils.getDType(clazz));<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        }<a name="line.821"></a>
+<span class="sourceLineNo">822</span><a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>        /**<a name="line.824"></a>
+<span class="sourceLineNo">825</span>         * Cast a dataset<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         *<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         * @param d<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         *            The dataset to be cast.<a name="line.828"></a>
+<span class="sourceLineNo">829</span>         * @param dtype dataset type<a name="line.829"></a>
+<span class="sourceLineNo">830</span>         * @return dataset of given type (or same dataset if already of the right type)<a name="line.830"></a>
+<span class="sourceLineNo">831</span>         */<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        public static Dataset cast(final IDataset d, final int dtype) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                Dataset a = convertToDataset(d);<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                if (a.getDType() == dtype) {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                        return a;<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                }<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                return copy(d, dtype);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>        }<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>        /**<a name="line.841"></a>
+<span class="sourceLineNo">842</span>         * Cast a dataset<a name="line.842"></a>
+<span class="sourceLineNo">843</span>         *<a name="line.843"></a>
+<span class="sourceLineNo">844</span>         * @param clazz dataset class<a name="line.844"></a>
+<span class="sourceLineNo">845</span>         * @param d<a name="line.845"></a>
+<span class="sourceLineNo">846</span>         *            The dataset to be cast.<a name="line.846"></a>
+<span class="sourceLineNo">847</span>         * @return dataset of given type (or same dataset if already of the right type)<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>        public static &lt;T extends Dataset&gt; T cast(Class&lt;T&gt; clazz, final IDataset d) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                return (T) cast(d, DTypeUtils.getDType(clazz));<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        }<a name="line.851"></a>
+<span class="sourceLineNo">852</span><a name="line.852"></a>
+<span class="sourceLineNo">853</span>        /**<a name="line.853"></a>
+<span class="sourceLineNo">854</span>         * Cast a dataset<a name="line.854"></a>
+<span class="sourceLineNo">855</span>         *<a name="line.855"></a>
+<span class="sourceLineNo">856</span>         * @param d<a name="line.856"></a>
+<span class="sourceLineNo">857</span>         *            The dataset to be cast.<a name="line.857"></a>
+<span class="sourceLineNo">858</span>         * @param repeat repeat elements over item<a name="line.858"></a>
+<span class="sourceLineNo">859</span>         * @param dtype dataset type<a name="line.859"></a>
+<span class="sourceLineNo">860</span>         * @param isize item size<a name="line.860"></a>
+<span class="sourceLineNo">861</span>         */<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        public static Dataset cast(final IDataset d, final boolean repeat, final int dtype, final int isize) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                Dataset a = convertToDataset(d);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span>                if (a.getDType() == dtype &amp;&amp; a.getElementsPerItem() == isize) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        return a;<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                }<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                if (isize &lt;= 0) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                        utilsLogger.error("Item size is invalid (&gt;0)");<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                        throw new IllegalArgumentException("Item size is invalid (&gt;0)");<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                if (isize &gt; 1 &amp;&amp; dtype &lt;= Dataset.FLOAT64) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                        utilsLogger.error("Item size is inconsistent with dataset type");<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        throw new IllegalArgumentException("Item size is inconsistent with dataset type");<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                }<a name="line.875"></a>
+<span class="sourceLineNo">876</span><a name="line.876"></a>
+<span class="sourceLineNo">877</span>                Dataset c = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span><a name="line.878"></a>
+<span class="sourceLineNo">879</span>                try {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        // copy across the data<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        switch (dtype) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        case Dataset.BOOL:<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                c = new BooleanDataset(a);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                break;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        case Dataset.INT8:<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                c = new ByteDataset(a);<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        case Dataset.INT16:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                c = new ShortDataset(a);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                break;<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        case Dataset.INT32:<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                c = new IntegerDataset(a);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                break;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        case Dataset.INT64:<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                c = new LongDataset(a);<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                break;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                        case Dataset.ARRAYINT8:<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                c = new CompoundByteDataset(isize, repeat, a);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                break;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                        case Dataset.ARRAYINT16:<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                c = new CompoundShortDataset(isize, repeat, a);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        case Dataset.ARRAYINT32:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                c = new CompoundIntegerDataset(isize, repeat, a);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                break;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        case Dataset.ARRAYINT64:<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                c = new CompoundLongDataset(isize, repeat, a);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                break;<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        case Dataset.FLOAT32:<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                c = new FloatDataset(a);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                break;<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                        case Dataset.FLOAT64:<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                c = new DoubleDataset(a);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                break;<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        case Dataset.ARRAYFLOAT32:<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                c = new CompoundFloatDataset(isize, repeat, a);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                break;<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        case Dataset.ARRAYFLOAT64:<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                c = new CompoundDoubleDataset(isize, repeat, a);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                break;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                        case Dataset.COMPLEX64:<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                c = new ComplexFloatDataset(a);<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                break;<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        case Dataset.COMPLEX128:<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                c = new ComplexDoubleDataset(a);<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                break;<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        default:<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                utilsLogger.error("Dataset of unknown type!");<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                break;<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                        }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                } catch (OutOfMemoryError e) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        utilsLogger.error("Not enough memory available to create dataset");<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        throw new OutOfMemoryError("Not enough memory available to create dataset");<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                }<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>                return c;<a name="line.936"></a>
+<span class="sourceLineNo">937</span>        }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>        /**<a name="line.939"></a>
+<span class="sourceLineNo">940</span>         * Cast array of datasets to a compound dataset<a name="line.940"></a>
+<span class="sourceLineNo">941</span>         *<a name="line.941"></a>
+<span class="sourceLineNo">942</span>         * @param a<a name="line.942"></a>
+<span class="sourceLineNo">943</span>         *            The datasets to be cast.<a name="line.943"></a>
+<span class="sourceLineNo">944</span>         */<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        public static CompoundDataset cast(final Dataset[] a, final int dtype) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                CompoundDataset c = null;<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>                switch (dtype) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                case Dataset.INT8:<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                case Dataset.ARRAYINT8:<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        c = new CompoundByteDataset(a);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                        break;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                case Dataset.INT16:<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                case Dataset.ARRAYINT16:<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        c = new CompoundShortDataset(a);<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                        break;<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                case Dataset.INT32:<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                case Dataset.ARRAYINT32:<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                        c = new CompoundIntegerDataset(a);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        break;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                case Dataset.INT64:<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                case Dataset.ARRAYINT64:<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                        c = new CompoundLongDataset(a);<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        break;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                case Dataset.FLOAT32:<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                case Dataset.ARRAYFLOAT32:<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        c = new CompoundFloatDataset(a);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        break;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                case Dataset.FLOAT64:<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                case Dataset.ARRAYFLOAT64:<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        c = new CompoundDoubleDataset(a);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.COMPLEX64:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        if (a.length != 2) {<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                throw new IllegalArgumentException("Need two datasets for complex dataset type");<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        c = new ComplexFloatDataset(a[0], a[1]);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        break;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                case Dataset.COMPLEX128:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (a.length != 2) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                throw new IllegalArgumentException("Need two datasets for complex dataset type");<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        }<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        c = new ComplexDoubleDataset(a[0], a[1]);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        break;<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                default:<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        utilsLogger.error("Dataset of unsupported type!");<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                }<a name="line.988"></a>
+<span class="sourceLineNo">989</span><a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return c;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        /**<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * of its contents<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @param a<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         * @return unsigned dataset or original if it is not an integer dataset<a name="line.997"></a>
+<span class="sourceLineNo">998</span>         */<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        public static Dataset makeUnsigned(IDataset a) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                return makeUnsigned(a, false);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span><a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        /**<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>         * Make a dataset unsigned by promoting it to a wider dataset type and unwrapping the signs<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * of its contents<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * @param a<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         * @param check if true, then check for negative values<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         * @return unsigned dataset or original if it is not an integer dataset or it has been check for negative numbers<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>         * @since 2.1<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>         */<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        public static Dataset makeUnsigned(IDataset a, boolean check) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                Dataset d = convertToDataset(a);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                if (d.hasFloatingPointElements()) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        return d;<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                if (check &amp;&amp; d.min(true).longValue() &gt;= 0) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        return d;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                int dtype = d.getDType();<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                switch (dtype) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                case Dataset.INT32:<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        d = new LongDataset(d);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                        unwrapUnsigned(d, 32);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                        break;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                case Dataset.INT16:<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                        d = new IntegerDataset(d);<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        unwrapUnsigned(d, 16);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        break;<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                case Dataset.INT8:<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        d = new ShortDataset(d);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        unwrapUnsigned(d, 8);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        break;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                case Dataset.ARRAYINT32:<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        d = new CompoundLongDataset(d);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        unwrapUnsigned(d, 32);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                        break;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                case Dataset.ARRAYINT16:<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                        d = new CompoundIntegerDataset(d);<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        unwrapUnsigned(d, 16);<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.ARRAYINT8:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        d = new CompoundShortDataset(d);<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        unwrapUnsigned(d, 8);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        break;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                return d;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        /**<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>         * Unwrap dataset elements so that all elements are unsigned<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>         * @param a dataset<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>         * @param bitWidth width of original primitive in bits<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>         */<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        public static void unwrapUnsigned(Dataset a, final int bitWidth) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                final int dtype = a.getDType();<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                final double dv = 1L &lt;&lt; bitWidth;<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                final int isize = a.getElementsPerItem();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                IndexIterator it = a.getIterator();<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                switch (dtype) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                case Dataset.BOOL:<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                        break;<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                case Dataset.INT8:<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                        break;<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                case Dataset.INT16:<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                        ShortDataset sds = (ShortDataset) a;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        final short soffset = (short) dv;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        while (it.hasNext()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                final short x = sds.getAbs(it.index);<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                if (x &lt; 0)<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        sds.setAbs(it.index, (short) (x + soffset));<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        break;<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                case Dataset.INT32:<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        IntegerDataset ids = (IntegerDataset) a;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        final int ioffset = (int) dv;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        while (it.hasNext()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                final int x = ids.getAbs(it.index);<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                if (x &lt; 0)<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        ids.setAbs(it.index, x + ioffset);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                        }<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                        break;<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                case Dataset.INT64:<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                        LongDataset lds = (LongDataset) a;<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                        final long loffset = (long) dv;<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                        while (it.hasNext()) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                final long x = lds.getAbs(it.index);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                if (x &lt; 0)<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                        lds.setAbs(it.index, x + loffset);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                        }<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        break;<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                case Dataset.FLOAT32:<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        FloatDataset fds = (FloatDataset) a;<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        final float foffset = (float) dv;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        while (it.hasNext()) {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                final float x = fds.getAbs(it.index);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                if (x &lt; 0)<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        fds.setAbs(it.index, x + foffset);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                        }<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                        break;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                case Dataset.FLOAT64:<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        DoubleDataset dds = (DoubleDataset) a;<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        final double doffset = dv;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        while (it.hasNext()) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                final double x = dds.getAbs(it.index);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                if (x &lt; 0)<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                        dds.setAbs(it.index, x + doffset);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        break;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                case Dataset.ARRAYINT8:<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                        break;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                case Dataset.ARRAYINT16:<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        CompoundShortDataset csds = (CompoundShortDataset) a;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                        final short csoffset = (short) dv;<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                        final short[] csa = new short[isize];<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        while (it.hasNext()) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                csds.getAbs(it.index, csa);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                boolean dirty = false;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                        short x = csa[i];<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        if (x &lt; 0) {<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                csa[i] = (short) (x + csoffset);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                                dirty = true;<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        }<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                }<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                if (dirty)<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        csds.setAbs(it.index, csa);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                        break;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                case Dataset.ARRAYINT32:<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        CompoundIntegerDataset cids = (CompoundIntegerDataset) a;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        final int cioffset = (int) dv;<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        final int[] cia = new int[isize];<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                        while (it.hasNext()) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                cids.getAbs(it.index, cia);<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                boolean dirty = false;<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        int x = cia[i];<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        if (x &lt; 0) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                cia[i] = x + cioffset;<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                                dirty = true;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                }<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                if (dirty)<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                        cids.setAbs(it.index, cia);<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                        break;<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                case Dataset.ARRAYINT64:<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        CompoundLongDataset clds = (CompoundLongDataset) a;<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        final long cloffset = (long) dv;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        final long[] cla = new long[isize];<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                        while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                clds.getAbs(it.index, cla);<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                boolean dirty = false;<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                for (int i = 0; i &lt; isize; i++) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                        long x = cla[i];<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                        if (x &lt; 0) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                                cla[i] = x + cloffset;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                                dirty = true;<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                if (dirty)<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                        clds.setAbs(it.index, cla);<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                        break;<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                default:<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        utilsLogger.error("Dataset of unsupported type for this method");<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        break;<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                }<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>        }<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span><a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>        /**<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>         * @param rows<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>         * @param cols<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         * @param offset<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>         * @param dtype<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>         * @return a new 2d dataset of given shape and type, filled with ones on the (offset) diagonal<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>         */<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>        public static Dataset eye(final int rows, final int cols, final int offset, final int dtype) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                int[] shape = new int[] {rows, cols};<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                @SuppressWarnings("deprecation")<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                Dataset a = DatasetFactory.zeros(shape, dtype);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                int[] pos = new int[] {0, offset};<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                while (pos[1] &lt; 0) {<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        pos[0]++;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                        pos[1]++;<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                }<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                while (pos[0] &lt; rows &amp;&amp; pos[1] &lt; cols) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                        a.set(1, pos);<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        pos[0]++;<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                        pos[1]++;<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span><a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                return a;<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>        }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span><a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>        /**<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>         * Create a (off-)diagonal matrix from items in dataset<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>         * @param a<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>         * @param offset<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>         * @return diagonal matrix<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>         */<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>        @SuppressWarnings("deprecation")<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>        public static &lt;T extends Dataset&gt; T diag(final T a, final int offset) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                final int dtype = a.getDType();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                final int rank = a.getRank();<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                final int is = a.getElementsPerItem();<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                if (rank == 0 || rank &gt; 2) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        utilsLogger.error("Rank of dataset should be one or two");<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        throw new IllegalArgumentException("Rank of dataset should be one or two");<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                }<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span><a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                Dataset result;<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                final int[] shape = a.getShapeRef();<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                if (rank == 1) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                        int side = shape[0] + Math.abs(offset);<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                        int[] pos = new int[] {side, side};<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                        result = DatasetFactory.zeros(is, pos, dtype);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        if (offset &gt;= 0) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                pos[0] = 0;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                pos[1] = offset;<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        } else {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                pos[0] = -offset;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                pos[1] = 0;<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                        int i = 0;<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                        while (pos[0] &lt; side &amp;&amp; pos[1] &lt; side) {<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                result.set(a.getObject(i++), pos);<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                pos[0]++;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                pos[1]++;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                } else {<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        int side = offset &gt;= 0 ? Math.min(shape[0], shape[1]-offset) : Math.min(shape[0]+offset, shape[1]);<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                        if (side &lt; 0)<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                side = 0;<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                        result = DatasetFactory.zeros(is, new int[] {side}, dtype);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span><a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                        if (side &gt; 0) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                int[] pos = offset &gt;= 0 ? new int[] { 0, offset } : new int[] { -offset, 0 };<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                int i = 0;<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                while (pos[0] &lt; shape[0] &amp;&amp; pos[1] &lt; shape[1]) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                        result.set(a.getObject(pos), i++);<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        pos[0]++;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        pos[1]++;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        }<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                return (T) result;<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>        }<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>        /**<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>         * Slice (or fully load), if necessary, a lazy dataset, otherwise take a slice view and<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>         * convert to our dataset implementation. If a slice is necessary, this may cause resource<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>         * problems when used on large datasets and throw runtime exceptions<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>         * @param lazy can be null<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>         * @return Converted dataset or null<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>         * @throws DatasetException<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>         */<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>        public static Dataset sliceAndConvertLazyDataset(ILazyDataset lazy) throws DatasetException {<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                if (lazy == null)<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        return null;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                IDataset data = lazy instanceof IDataset ? (IDataset) lazy.getSliceView() : lazy.getSlice();<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                return convertToDataset(data);<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>        }<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span><a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>        /**<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>         * Convert (if necessary) a dataset obeying the interface to our implementation<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>         * @param data can be null<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>         * @return Converted dataset or null<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>         */<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>        public static Dataset convertToDataset(IDataset data) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                if (data == null)<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                        return null;<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span><a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                if (data instanceof Dataset) {<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                        return (Dataset) data;<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span><a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                int dtype = DTypeUtils.getDType(data);<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                final int isize = data.getElementsPerItem();<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                if (isize &lt;= 0) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        throw new IllegalArgumentException("Datasets with " + isize + " elements per item not supported");<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                @SuppressWarnings("deprecation")<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                final Dataset result = DatasetFactory.zeros(isize, data.getShape(), dtype);<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                result.setName(data.getName());<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                final IndexIterator it = result.getIterator(true);<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                final int[] pos = it.getPos();<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                switch (dtype) {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                case Dataset.BOOL:<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        while (it.hasNext()) {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                result.setObjectAbs(it.index, data.getBoolean(pos));<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        }<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                        break;<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                case Dataset.INT8:<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                        while (it.hasNext()) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                result.setObjectAbs(it.index, data.getByte(pos));<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                        }<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                        break;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                case Dataset.INT16:<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                        while (it.hasNext()) {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                result.setObjectAbs(it.index, data.getShort(pos));<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                        }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                        break;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                case Dataset.INT32:<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                        while (it.hasNext()) {<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                result.setObjectAbs(it.index, data.getInt(pos));<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                        break;<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                case Dataset.INT64:<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        while (it.hasNext()) {<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                result.setObjectAbs(it.index, data.getLong(pos));<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        }<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                        break;<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                case Dataset.FLOAT32:<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                        while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                result.setObjectAbs(it.index, data.getFloat(pos));<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                        }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        break;<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                case Dataset.FLOAT64:<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                        while (it.hasNext()) {<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                result.setObjectAbs(it.index, data.getDouble(pos));<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                        }<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                        break;<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                default:<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                        while (it.hasNext()) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                result.setObjectAbs(it.index, data.getObject(pos));<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                        }<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                        break;<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span><a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                result.setErrors(data.getErrors());<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                return result;<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        }<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span><a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>        /**<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * Create a compound dataset from given datasets<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         * @param datasets<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @return compound dataset or null if none given<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         */<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>        public static CompoundDataset createCompoundDataset(final Dataset... datasets) {<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                if (datasets == null || datasets.length == 0)<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        return null;<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                return createCompoundDataset(datasets[0].getDType(), datasets);<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>        }<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>        /**<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>         * Create a compound dataset from given datasets<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>         * @param dtype<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>         * @param datasets<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>         * @return compound dataset or null if none given<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>         */<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>        public static CompoundDataset createCompoundDataset(final int dtype, final Dataset... datasets) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                if (datasets == null || datasets.length == 0)<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                        return null;<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span><a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                switch (dtype) {<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                case Dataset.INT8:<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                case Dataset.ARRAYINT8:<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                        return new CompoundByteDataset(datasets);<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                case Dataset.INT16:<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                case Dataset.ARRAYINT16:<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                        return new CompoundShortDataset(datasets);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                case Dataset.INT32:<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                case Dataset.ARRAYINT32:<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                        return new CompoundIntegerDataset(datasets);<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                case Dataset.INT64:<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                case Dataset.ARRAYINT64:<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                        return new CompoundLongDataset(datasets);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                case Dataset.FLOAT32:<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                case Dataset.ARRAYFLOAT32:<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                        return new CompoundFloatDataset(datasets);<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                case Dataset.FLOAT64:<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                case Dataset.ARRAYFLOAT64:<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                        return new CompoundDoubleDataset(datasets);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                case Dataset.COMPLEX64:<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                case Dataset.COMPLEX128:<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        if (datasets.length &gt; 2) {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                utilsLogger.error("At most two datasets are allowed");<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                throw new IllegalArgumentException("At most two datasets are allowed");<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                        } else if (datasets.length == 2) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                return dtype == Dataset.COMPLEX64 ? new ComplexFloatDataset(datasets[0], datasets[1]) : new ComplexDoubleDataset(datasets[0], datasets[1]);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                        }<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                        return dtype == Dataset.COMPLEX64 ? new ComplexFloatDataset(datasets[0]) : new ComplexDoubleDataset(datasets[0]);<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                case Dataset.RGB:<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                        if (datasets.length == 1) {<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                return new RGBDataset(datasets[0]);<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                        } else if (datasets.length == 3) {<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                return new RGBDataset(datasets[0], datasets[1], datasets[2]);<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                        } else {<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                utilsLogger.error("Only one or three datasets are allowed to create a RGB dataset");<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                throw new IllegalArgumentException("Only one or three datasets are allowed to create a RGB dataset");<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                        }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                default:<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                        throw new UnsupportedOperationException("Dataset type not supported");<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>        }<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>        /**<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>         * Create a compound dataset from given datasets<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>         * @param clazz dataset class<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>         * @param datasets<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>         * @return compound dataset or null if none given<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>         */<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>        public static &lt;T extends CompoundDataset&gt; T createCompoundDataset(Class&lt;T&gt; clazz, final Dataset... datasets) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                return (T) createCompoundDataset(DTypeUtils.getDType(clazz), datasets);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>        }<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span><a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        /**<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>         * Create a compound dataset from given dataset<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>         * @param dataset<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>         * @param itemSize<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>         * @return compound dataset<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>         */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>        public static CompoundDataset createCompoundDataset(final Dataset dataset, final int itemSize) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                int[] shape = dataset.getShapeRef();<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                int[] nshape = shape;<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                if (shape != null &amp;&amp; itemSize &gt; 1) {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                        int size = ShapeUtils.calcSize(shape);<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                        if (size % itemSize != 0) {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                throw new IllegalArgumentException("Input dataset has number of items that is not a multiple of itemSize");<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                        }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                        int d = shape.length;<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                        int l = 1;<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                        while (--d &gt;= 0) {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                l *= shape[d];<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                if (l % itemSize == 0) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                        break;<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                }<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                        }<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                        assert d &gt;= 0;<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        nshape = new int[d + 1];<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                        for (int i = 0; i &lt; d; i++) {<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                nshape[i] = shape[i];<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                        }<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                        nshape[d] = l / itemSize;<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                }<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                switch (dataset.getDType()) {<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                case Dataset.INT8:<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                        return new CompoundByteDataset(itemSize, (byte[]) dataset.getBuffer(), nshape);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                case Dataset.INT16:<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                        return new CompoundShortDataset(itemSize, (short[]) dataset.getBuffer(), nshape);<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                case Dataset.INT32:<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                        return new CompoundIntegerDataset(itemSize, (int[]) dataset.getBuffer(), nshape);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                case Dataset.INT64:<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        return new CompoundLongDataset(itemSize, (long[]) dataset.getBuffer(), nshape);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                case Dataset.FLOAT32:<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                        return new CompoundFloatDataset(itemSize, (float[]) dataset.getBuffer(), nshape);<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                case Dataset.FLOAT64:<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                        return new CompoundDoubleDataset(itemSize, (double[]) dataset.getBuffer(), nshape);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                default:<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                        throw new UnsupportedOperationException("Dataset type not supported");<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span><a name="line.1468"></a>
+<span class="sourceLineNo">1469</span><a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        /**<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>         * Create a compound dataset by using last axis as elements of an item<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>         * @param a<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>         * @param shareData if true, then share data<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>         * @return compound dataset<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>         */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>        public static CompoundDataset createCompoundDatasetFromLastAxis(final Dataset a, final boolean shareData) {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                switch (a.getDType()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                case Dataset.INT8:<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                        return CompoundByteDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                case Dataset.INT16:<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                        return CompoundShortDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                case Dataset.INT32:<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                        return CompoundIntegerDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                case Dataset.INT64:<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                        return CompoundLongDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                case Dataset.FLOAT32:<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        return CompoundFloatDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.FLOAT64:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        return CompoundDoubleDataset.createCompoundDatasetWithLastDimension(a, shareData);<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                default:<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        utilsLogger.error("Dataset type not supported for this operation");<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                        throw new UnsupportedOperationException("Dataset type not supported");<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                }<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>        }<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span><a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>        /**<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>         * Create a dataset from a compound dataset by using elements of an item as last axis<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>         * &lt;p&gt;<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>         * In the case where the number of elements is one, the last axis is squeezed out.<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>         * @param a<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>         * @param shareData if true, then share data<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>         * @return non-compound dataset<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>         */<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>        public static Dataset createDatasetFromCompoundDataset(final CompoundDataset a, final boolean shareData) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                return a.asNonCompoundDataset(shareData);<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span><a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>        /**<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>         * Create a copy that has been coerced to an appropriate dataset type<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>         * depending on the input object's class<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>         *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>         * @param a<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>         * @param obj<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>         * @return coerced copy of dataset<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>         */<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>        public static Dataset coerce(Dataset a, Object obj) {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                final int dt = a.getDType();<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                final int ot = DTypeUtils.getDTypeFromClass(obj.getClass());<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                return cast(a.clone(), DTypeUtils.getBestDType(dt, ot));<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        }<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span><a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>        /**<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>         * @param a dataset<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>         * @return normalised dataset<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>         */<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        public static Dataset norm(Dataset a) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                double amin = a.min().doubleValue();<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                double aptp = a.max().doubleValue() - amin;<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                Dataset temp = Maths.subtract(a, amin);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                temp.idivide(aptp);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                return temp;<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>        }<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span><a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>        /**<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>         * Function that returns a normalised compound dataset which is bounded between 0 and 1. There<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>         * are (at least) two ways to normalise a compound dataset: per element - extrema for each element<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>         * in a compound item is used, i.e. many min/max pairs; over all elements - extrema for all elements<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>         * is used, i.e. one min/max pair.<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>         * @param a dataset<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>         * @param overAllElements if true, then normalise over all elements in each item<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>         * @return normalised dataset<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>         */<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>        public static CompoundDataset norm(CompoundDataset a, boolean overAllElements) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                double[] amin = a.minItem();<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                double[] amax = a.maxItem();<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                final int is = a.getElementsPerItem();<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                Dataset result;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span><a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                if (overAllElements) {<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                        Arrays.sort(amin);<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                        Arrays.sort(amax);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                        double aptp = amax[0] - amin[0];<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span><a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        result = Maths.subtract(a, amin[0]);<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                        result.idivide(aptp);<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                } else {<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                        double[] aptp = new double[is];<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                aptp[j] = amax[j] - amin[j];<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                        }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span><a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                        result = Maths.subtract(a, amin);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                        result.idivide(aptp);<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                return (CompoundDataset) result;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>        }<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span><a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>        /**<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>         * and has been distributed on a log10 scale<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>         * @param a dataset<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>         * @return normalised dataset<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>         */<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>        public static Dataset lognorm(Dataset a) {<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                double amin = a.min().doubleValue();<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                double aptp = Math.log10(a.max().doubleValue() - amin + 1.);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                Dataset temp = Maths.subtract(a, amin - 1.);<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                temp = Maths.log10(temp);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                temp = Maths.divide(temp, aptp);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                return temp;<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span><a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        /**<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>         * Function that returns a normalised dataset which is bounded between 0 and 1<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>         * and has been distributed on a natural log scale<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>         * @param a dataset<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>         * @return normalised dataset<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>         */<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        public static Dataset lnnorm(Dataset a) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                double amin = a.min().doubleValue();<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                double aptp = Math.log(a.max().doubleValue() - amin + 1.);<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                Dataset temp = Maths.subtract(a, amin - 1.);<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                temp = Maths.log(temp);<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                temp = Maths.divide(temp, aptp);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                return temp;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>        }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        /**<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>         * Construct a list of datasets where each represents a coordinate varying over the hypergrid<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * formed by the input list of axes<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         *<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         * @param axes an array of 1D datasets representing axes<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>         * @return a list of coordinate datasets<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>         */<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>        public static List&lt;Dataset&gt; meshGrid(final Dataset... axes) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                List&lt;Dataset&gt; result = new ArrayList&lt;Dataset&gt;();<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                int rank = axes.length;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                if (rank &lt; 2) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                        utilsLogger.error("Two or more axes datasets are required");<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                        throw new IllegalArgumentException("Two or more axes datasets are required");<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                }<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span><a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                int[] nshape = new int[rank];<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span><a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                        Dataset axis = axes[i];<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                        if (axis.getRank() != 1) {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                utilsLogger.error("Given axis is not 1D");<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                                throw new IllegalArgumentException("Given axis is not 1D");<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        }<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                        nshape[i] = axis.getSize();<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                        Dataset axis = axes[i];<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                        @SuppressWarnings("deprecation")<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                        Dataset coord = DatasetFactory.zeros(nshape, axis.getDType());<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        result.add(coord);<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                        final int alen = axis.getSize();<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                        for (int j = 0; j &lt; alen; j++) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                final Object obj = axis.getObjectAbs(j);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                PositionIterator pi = coord.getPositionIterator(i);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                final int[] pos = pi.getPos();<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                pos[i] = j;<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                while (pi.hasNext()) {<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                        coord.set(obj, pos);<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                        }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                }<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span><a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                return result;<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span><a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>        /**<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>         * Generate an index dataset for given dataset where sub-datasets contain index values<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>         *<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>         * @return an index dataset<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>         */<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>        public static IntegerDataset indices(int... shape) {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                // now create another dataset to plot against<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                final int rank = shape.length;<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                int[] nshape = new int[rank+1];<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                nshape[0] = rank;<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                        nshape[i+1] = shape[i];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span><a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                IntegerDataset index = new IntegerDataset(nshape);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span><a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                if (rank == 1) {<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                        final int alen = shape[0];<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                        int[] pos = new int[2];<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        for (int j = 0; j &lt; alen; j++) {<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                pos[1] = j;<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                index.set(j, pos);<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                        }<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                        for (int i = 1; i &lt;= rank; i++) {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                final int alen = nshape[i];<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                for (int j = 0; j &lt; alen; j++) {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        PositionIterator pi = index.getPositionIterator(0, i);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                        final int[] pos = pi.getPos();<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                                        pos[0] = i-1;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                        pos[i] = j;<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                                        while (pi.hasNext()) {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                                index.set(j, pos);<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                                        }<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                }<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                        }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                }<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                return index;<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>        }<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span><a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        /**<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         * Get the centroid value of a dataset, this function works out the centroid in every direction<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>         *<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>         * @param a<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>         *            the dataset to be analysed<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>         * @param bases the optional array of base coordinates to use as weights.<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>         * This defaults to the mid-point of indices<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>         * @return a double array containing the centroid for each dimension<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>        public static double[] centroid(Dataset a, Dataset... bases) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                int rank = a.getRank();<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                if (bases.length &gt; 0 &amp;&amp; bases.length != rank) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                        throw new IllegalArgumentException("Number of bases must be zero or match rank of dataset");<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                }<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span><a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                int[] shape = a.getShapeRef();<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                if (bases.length == rank) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                Dataset b = bases[i];<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                if (b.getRank() != 1 &amp;&amp; b.getSize() != shape[i]) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                        throw new IllegalArgumentException("A base does not have shape to match given dataset");<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                }<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                        }<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span><a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                double[] dc = new double[rank];<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                if (rank == 0)<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                        return dc;<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span><a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                final PositionIterator iter = new PositionIterator(shape);<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                final int[] pos = iter.getPos();<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span><a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                double tsum = 0.0;<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                while (iter.hasNext()) {<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                        double val = a.getDouble(pos);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                        tsum += val;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                        for (int d = 0; d &lt; rank; d++) {<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                Dataset b = bases.length == 0 ? null : bases[d];<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                if (b == null) {<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        dc[d] += (pos[d] + 0.5) * val;<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                        dc[d] += b.getElementDoubleAbs(pos[d]) * val;<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                        }<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span><a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                for (int d = 0; d &lt; rank; d++) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                        dc[d] /= tsum;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                return dc;<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span><a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>        /**<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>         * Find linearly-interpolated crossing points where the given dataset crosses the given value<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>         *<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>         * @param d<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>         * @param value<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>         * @return list of interpolated indices<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>         */<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>        public static List&lt;Double&gt; crossings(Dataset d, double value) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                if (d.getRank() != 1) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                        utilsLogger.error("Only 1d datasets supported");<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        throw new UnsupportedOperationException("Only 1d datasets supported");<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                }<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                List&lt;Double&gt; results = new ArrayList&lt;Double&gt;();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span><a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                // run through all pairs of points on the line and see if value lies within<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                IndexIterator it = d.getIterator();<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                double y1, y2;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span><a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                y2 = it.hasNext() ? d.getElementDoubleAbs(it.index) : 0;<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                double x = 1;<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                while (it.hasNext()) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                        y1 = y2;<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                        y2 = d.getElementDoubleAbs(it.index);<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                        // check if value lies within pair [y1, y2]<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                        if ((y1 &lt;= value &amp;&amp; value &lt; y2) || (y1 &gt; value &amp;&amp; y2 &lt;= value)) {<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                final double f = (value - y2)/(y2 - y1); // negative distance from right to left<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                results.add(x + f);<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                        }<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                        x++;<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                }<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                if (y2 == value) { // add end point of it intersects<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                        results.add(x);<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                }<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span><a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                return results;<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>        }<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span><a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>        /**<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>         * Find x values of all the crossing points of the dataset with the given y value<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>         *<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>         * @param xAxis<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>         *            Dataset of the X axis that needs to be looked at<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>         * @param yAxis<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>         *            Dataset of the Y axis that needs to be looked at<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>         * @param yValue<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>         *            The y value the X values are required for<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>         * @return An list of doubles containing all the X coordinates of where the line crosses<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>         */<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        public static List&lt;Double&gt; crossings(Dataset xAxis, Dataset yAxis, double yValue) {<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                if (xAxis.getSize() &gt; yAxis.getSize()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                        throw new IllegalArgumentException(<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        "Number of values of yAxis must as least be equal to the number of values of xAxis");<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span><a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                List&lt;Double&gt; results = new ArrayList&lt;Double&gt;();<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span><a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                List&lt;Double&gt; indices = crossings(yAxis, yValue);<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span><a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                for (double xi : indices) {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        results.add(Maths.interpolate(xAxis, xi));<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                }<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                return results;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>        }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>        /**<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>         * Function that uses the crossings function but prunes the result, so that multiple crossings within a<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>         * certain proportion of the overall range of the x values<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>         *<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>         * @param xAxis<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>         *            Dataset of the X axis<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>         * @param yAxis<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>         *            Dataset of the Y axis<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>         * @param yValue<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>         *            The y value the x values are required for<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>         * @param xRangeProportion<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>         *            The proportion of the overall x spread used to prune result<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>         * @return A list containing all the unique crossing points<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>         */<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>        public static List&lt;Double&gt; crossings(Dataset xAxis, Dataset yAxis, double yValue, double xRangeProportion) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                // get the values found<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                List&lt;Double&gt; vals = crossings(xAxis, yAxis, yValue);<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span><a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                // use the proportion to calculate the error spacing<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                double error = xRangeProportion * xAxis.peakToPeak().doubleValue();<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span><a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                int i = 0;<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                // now go through and check for groups of three crossings which are all<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                // within the boundaries<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                while (i &lt;= vals.size() - 3) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                        double v1 = Math.abs(vals.get(i) - vals.get(i + 2));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                        if (v1 &lt; error) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                // these 3 points should be treated as one<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                // make the first point equal to the average of them all<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                vals.set(i + 2, ((vals.get(i) + vals.get(i + 1) + vals.get(i + 2)) / 3.0));<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                // remove the other offending points<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                vals.remove(i);<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                vals.remove(i);<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                        } else {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                i++;<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                // once the thinning process has been completed, return the pruned list<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                return vals;<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>        }<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span><a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>        // recursive function<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>        private static void setRow(Object row, Dataset a, int... pos) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                final int l = Array.getLength(row);<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                final int rank = pos.length;<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                final int[] npos = Arrays.copyOf(pos, rank+1);<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                Object r;<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                if (rank+1 &lt; a.getRank()) {<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                npos[rank] = i;<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                r = Array.get(row, i);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                setRow(r, a, npos);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                        }<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                } else {<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                npos[rank] = i;<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                r = a.getObject(npos);<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                Array.set(row, i, r);<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                        }<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                }<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span><a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        /**<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>         * Create Java array (of arrays) from dataset<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>         * @param a dataset<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>         * @return Java array (of arrays...)<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>         */<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>        public static Object createJavaArray(Dataset a) {<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                if (a.getElementsPerItem() &gt; 1) {<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        a = createDatasetFromCompoundDataset((CompoundDataset) a, true);<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                }<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                Object matrix;<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span><a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                switch (a.getDType()) {<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                case Dataset.BOOL:<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        matrix = Array.newInstance(boolean.class, a.getShape());<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                case Dataset.INT8:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        matrix = Array.newInstance(byte.class, a.getShape());<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                        break;<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                case Dataset.INT16:<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                        matrix = Array.newInstance(short.class, a.getShape());<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                        break;<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>                case Dataset.INT32:<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                        matrix = Array.newInstance(int.class, a.getShape());<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>                        break;<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>                case Dataset.INT64:<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        matrix = Array.newInstance(long.class, a.getShape());<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                        break;<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                case Dataset.FLOAT32:<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                        matrix = Array.newInstance(float.class, a.getShape());<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                        break;<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                case Dataset.FLOAT64:<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                        matrix = Array.newInstance(double.class, a.getShape());<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                        break;<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                default:<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                        utilsLogger.error("Dataset type not supported");<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                        throw new IllegalArgumentException("Dataset type not supported");<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                }<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span><a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                // populate matrix<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                setRow(matrix, a);<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                return matrix;<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>        }<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span><a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>        /**<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>         * Removes NaNs and infinities from floating point datasets.<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>         * All other dataset types are ignored.<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>         *<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>         * @param a dataset<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>         * @param value replacement value<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>         */<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>        public static void removeNansAndInfinities(Dataset a, final Number value) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                if (a instanceof DoubleDataset) {<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                        final double dvalue = DTypeUtils.toReal(value);<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                        final DoubleDataset set = (DoubleDataset) a;<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                        final IndexIterator it = set.getIterator();<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                        final double[] data = set.getData();<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        while (it.hasNext()) {<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                                double x = data[it.index];<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                                if (Double.isNaN(x) || Double.isInfinite(x))<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                                        data[it.index] = dvalue;<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                        }<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                } else if (a instanceof FloatDataset) {<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                        final float fvalue = (float) DTypeUtils.toReal(value);<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        final FloatDataset set = (FloatDataset) a;<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        final IndexIterator it = set.getIterator();<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        final float[] data = set.getData();<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        while (it.hasNext()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                float x = data[it.index];<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                                if (Float.isNaN(x) || Float.isInfinite(x))<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                                        data[it.index] = fvalue;<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                        }<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                } else if (a instanceof CompoundDoubleDataset) {<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                        final double dvalue = DTypeUtils.toReal(value);<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                        final CompoundDoubleDataset set = (CompoundDoubleDataset) a;<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                        final int is = set.getElementsPerItem();<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                        final IndexIterator it = set.getIterator();<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                        final double[] data = set.getData();<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                        while (it.hasNext()) {<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                                        double x = data[it.index + j];<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                                        if (Double.isNaN(x) || Double.isInfinite(x))<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                                                data[it.index + j] = dvalue;<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                                }<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                        }<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                } else if (a instanceof CompoundFloatDataset) {<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                        final float fvalue = (float) DTypeUtils.toReal(value);<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                        final CompoundFloatDataset set = (CompoundFloatDataset) a;<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                        final int is = set.getElementsPerItem();<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                        final IndexIterator it = set.getIterator();<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                        final float[] data = set.getData();<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                        while (it.hasNext()) {<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                        float x = data[it.index + j];<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                        if (Float.isNaN(x) || Float.isInfinite(x))<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                                data[it.index + j] = fvalue;<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                }<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                        }<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                }<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>        }<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span><a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>        /**<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>         * Make floating point datasets contain only finite values. Infinities and NaNs are replaced<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>         * by +/- MAX_VALUE and 0, respectively.<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>         * All other dataset types are ignored.<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>         *<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>         * @param a dataset<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>         */<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>        public static void makeFinite(Dataset a) {<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                if (a instanceof DoubleDataset) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                        final DoubleDataset set = (DoubleDataset) a;<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                        final IndexIterator it = set.getIterator();<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                        final double[] data = set.getData();<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                        while (it.hasNext()) {<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                final double x = data[it.index];<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                                if (Double.isNaN(x))<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                                        data[it.index] = 0;<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                                else if (Double.isInfinite(x))<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                                        data[it.index] = x &gt; 0 ? Double.MAX_VALUE : -Double.MAX_VALUE;<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                        }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>                } else if (a instanceof FloatDataset) {<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                        final FloatDataset set = (FloatDataset) a;<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                        final IndexIterator it = set.getIterator();<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                        final float[] data = set.getData();<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                        while (it.hasNext()) {<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                                final float x = data[it.index];<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>                                if (Float.isNaN(x))<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>                                        data[it.index] = 0;<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>                                else if (Float.isInfinite(x))<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                                        data[it.index] = x &gt; 0 ? Float.MAX_VALUE : -Float.MAX_VALUE;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                        }<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                } else if (a instanceof CompoundDoubleDataset) {<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                        final CompoundDoubleDataset set = (CompoundDoubleDataset) a;<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        final int is = set.getElementsPerItem();<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                        final IndexIterator it = set.getIterator();<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>                        final double[] data = set.getData();<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                        while (it.hasNext()) {<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>                                        final double x = data[it.index + j];<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>                                        if (Double.isNaN(x))<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>                                                data[it.index + j] = 0;<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>                                        else if (Double.isInfinite(x))<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>                                                data[it.index + j] = x &gt; 0 ? Double.MAX_VALUE : -Double.MAX_VALUE;<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>                                }<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>                        }<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>                } else if (a instanceof CompoundFloatDataset) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>                        final CompoundFloatDataset set = (CompoundFloatDataset) a;<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>                        final int is = set.getElementsPerItem();<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>                        final IndexIterator it = set.getIterator();<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>                        final float[] data = set.getData();<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>                        while (it.hasNext()) {<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                                        final float x = data[it.index + j];<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                                        if (Float.isNaN(x))<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                                                data[it.index + j] = 0;<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>                                        else if (Float.isInfinite(x))<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                                                data[it.index + j] = x &gt; 0 ? Float.MAX_VALUE : -Float.MAX_VALUE;<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                                }<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                        }<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                }<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>        }<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span><a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>        /**<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>         * Find absolute index of first value in dataset that is equal to given number<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span>         * @param a<a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>         * @param n<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>         */<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>        public static int findIndexEqualTo(final Dataset a, final double n) {<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                IndexIterator iter = a.getIterator();<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                while (iter.hasNext()) {<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                        if (a.getElementDoubleAbs(iter.index) == n)<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                                break;<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                }<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span><a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                return iter.index;<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>        }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>        /**<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>         * Find absolute index of first value in dataset that is greater than given number<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>         * @param a<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>         * @param n<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>         */<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>        public static int findIndexGreaterThan(final Dataset a, final double n) {<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                IndexIterator iter = a.getIterator();<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                while (iter.hasNext()) {<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                        if (a.getElementDoubleAbs(iter.index) &gt; n)<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                                break;<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                }<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span><a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                return iter.index;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>        }<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span><a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>        /**<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>         * Find absolute index of first value in dataset that is greater than or equal to given number<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>         * @param a<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>         * @param n<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>         */<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>        public static int findIndexGreaterThanOrEqualTo(final Dataset a, final double n) {<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                IndexIterator iter = a.getIterator();<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                while (iter.hasNext()) {<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                        if (a.getElementDoubleAbs(iter.index) &gt;= n)<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>                                break;<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                }<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span><a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                return iter.index;<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>        }<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span><a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>        /**<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>         * Find absolute index of first value in dataset that is less than given number<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>         * @param a<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>         * @param n<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>         */<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>        public static int findIndexLessThan(final Dataset a, final double n) {<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                IndexIterator iter = a.getIterator();<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                while (iter.hasNext()) {<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                        if (a.getElementDoubleAbs(iter.index) &lt; n)<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                break;<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                }<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span><a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>                return iter.index;<a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>        }<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span><a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>        /**<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>         * Find absolute index of first value in dataset that is less than or equal to given number<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>         * @param a<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>         * @param n<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>         * @return absolute index (if greater than a.getSize() then no value found)<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>         */<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>        public static int findIndexLessThanOrEqualTo(final Dataset a, final double n) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>                IndexIterator iter = a.getIterator();<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>                while (iter.hasNext()) {<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>                        if (a.getElementDoubleAbs(iter.index) &lt;= n)<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>                                break;<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>                }<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span><a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>                return iter.index;<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>        }<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span><a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>        /**<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>         * Find first occurrences in one dataset of values given in another sorted dataset<a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>         * @param a<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>         * @param values sorted 1D dataset of values to find<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>         * @return absolute indexes of those first occurrences (-1 is used to indicate value not found)<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>         */<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>        public static IntegerDataset findFirstOccurrences(final Dataset a, final Dataset values) {<a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>                if (values.getRank() != 1) {<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>                        throw new IllegalArgumentException("Values dataset must be 1D");<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>                }<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>                IntegerDataset indexes = new IntegerDataset(values.getSize());<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>                indexes.fill(-1);<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span><a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>                IndexIterator it = a.getIterator();<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>                final int n = values.getSize();<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>                if (values.getDType() == Dataset.INT64) {<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>                        while (it.hasNext()) {<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>                                long x = a.getElementLongAbs(it.index);<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span><a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>                                long vl = values.getLong(l);<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>                                if (x &lt;= vl) {<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>                                        if (x == vl &amp;&amp; indexes.getAbs(l) &lt; 0)<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>                                                indexes.setAbs(l, it.index);<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>                                        continue;<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>                                }<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>                                int h = n - 1;<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>                                long vh = values.getLong(h);<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>                                if (x &gt;= vh) {<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>                                        if (x == vh &amp;&amp; indexes.getAbs(h) &lt; 0)<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>                                                indexes.setAbs(h, it.index);<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>                                        continue;<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>                                }<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>                                while (h - l &gt; 1) {<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>                                        int m = (l + h) / 2;<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>                                        long vm = values.getLong(m);<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>                                        if (x &lt; vm) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>                                                h = m;<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>                                        } else if (x &gt; vm) {<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>                                                l = m;<a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>                                        } else {<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>                                                if (indexes.getAbs(m) &lt; 0)<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>                                                        indexes.setAbs(m, it.index);<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>                                                break;<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>                                        }<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>                                }<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>                        }<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>                } else {<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>                        while (it.hasNext()) {<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>                                double x = a.getElementDoubleAbs(it.index);<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span><a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>                                double vl = values.getDouble(l);<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>                                if (x &lt;= vl) {<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>                                        if (x == vl &amp;&amp; indexes.getAbs(l) &lt; 0)<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span>                                                indexes.setAbs(l, it.index);<a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>                                        continue;<a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>                                }<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>                                int h = n - 1;<a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>                                double vh = values.getDouble(h);<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>                                if (x &gt;= vh) {<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>                                        if (x == vh &amp;&amp; indexes.getAbs(h) &lt; 0)<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>                                                indexes.setAbs(h, it.index);<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>                                        continue;<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>                                }<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>                                while (h - l &gt; 1) {<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>                                        int m = (l + h) / 2;<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>                                        double vm = values.getDouble(m);<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>                                        if (x &lt; vm) {<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>                                                h = m;<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>                                        } else if (x &gt; vm) {<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>                                                l = m;<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>                                        } else {<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>                                                if (indexes.getAbs(m) &lt; 0)<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>                                                        indexes.setAbs(m, it.index);<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>                                                break;<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>                                        }<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>                                }<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>                        }<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>                }<a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>                return indexes;<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>        }<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span><a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>        /**<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>         * Find indexes in sorted dataset of values for each value in other dataset<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>         * @param a<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>         * @param values sorted 1D dataset of values to find<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>         * @return absolute indexes of values (-1 is used to indicate value not found)<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>         */<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>        public static IntegerDataset findIndexesForValues(final Dataset a, final Dataset values) {<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>                if (values.getRank() != 1) {<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>                        throw new IllegalArgumentException("Values dataset must be 1D");<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>                }<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>                IntegerDataset indexes = new IntegerDataset(a.getSize());<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>                indexes.fill(-1);<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span><a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>                IndexIterator it = a.getIterator();<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>                int i = -1;<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>                final int n = values.getSize();<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>                if (values.getDType() == Dataset.INT64) {<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>                        while (it.hasNext()) {<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>                                i++;<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>                                long x = a.getElementLongAbs(it.index);<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span><a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>                                long vl = values.getLong(l);<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>                                if (x &lt;= vl) {<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>                                        if (x == vl)<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>                                                indexes.setAbs(i, l);<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>                                        continue;<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>                                }<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>                                int h = n - 1;<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>                                long vh = values.getLong(h);<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>                                if (x &gt;= vh) {<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>                                        if (x == vh)<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>                                                indexes.setAbs(i, h);<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>                                        continue;<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>                                }<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>                                while (h - l &gt; 1) {<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>                                        int m = (l + h) / 2;<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>                                        long vm = values.getLong(m);<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>                                        if (x &lt; vm) {<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>                                                h = m;<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>                                        } else if (x &gt; vm) {<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>                                                l = m;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>                                        } else {<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>                                                indexes.setAbs(i, m);<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>                                                break;<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>                                        }<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>                                }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>                        }<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>                } else {<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>                        while (it.hasNext()) {<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>                                i++;<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>                                double x = a.getElementDoubleAbs(it.index);<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span><a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>                                int l = 0; // binary search to find value in sorted dataset<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>                                double vl = values.getDouble(l);<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>                                if (x &lt;= vl) {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>                                        if (x == vl)<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>                                                indexes.setAbs(i, l);<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>                                        continue;<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>                                }<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>                                int h = n - 1;<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>                                double vh = values.getDouble(h);<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>                                if (x &gt;= vh) {<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>                                        if (x == vh)<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>                                                indexes.setAbs(i, h);<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>                                        continue;<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>                                }<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>                                while (h - l &gt; 1) {<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>                                        int m = (l + h) / 2;<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>                                        double vm = values.getDouble(m);<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>                                        if (x &lt; vm) {<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>                                                h = m;<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>                                        } else if (x &gt; vm) {<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>                                                l = m;<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>                                        } else {<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>                                                indexes.setAbs(i, m);<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>                                                break;<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>                                        }<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>                                }<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>                        }<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>                }<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span><a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>                return indexes;<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>        }<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span><a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>        /**<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>         * Roll items over given axis by given amount<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>         * @param a<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>         * @param shift<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>         * @param axis if null, then roll flattened dataset<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>         * @return rolled dataset<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>         */<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>        public static &lt;T extends Dataset&gt; T roll(final T a, final int shift, Integer axis) {<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>                Dataset r = DatasetFactory.zeros(a);<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>                int is = a.getElementsPerItem();<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>                if (axis == null) {<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>                        IndexIterator it = a.getIterator();<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>                        int s = r.getSize();<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>                        int i = shift % s;<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>                        if (i &lt; 0)<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>                                i += s;<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>                        while (it.hasNext()) {<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>                                r.setObjectAbs(i, a.getObjectAbs(it.index));<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>                                i += is;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>                                if (i &gt;= s) {<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>                                        i %= s;<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>                                }<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                        }<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                } else {<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>                        axis = a.checkAxis(axis);<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>                        PositionIterator pi = a.getPositionIterator(axis);<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>                        int s = a.getShapeRef()[axis];<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>                        Dataset u = DatasetFactory.zeros(is, a.getClass(), new int[] {s});<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>                        Dataset v = DatasetFactory.zeros(u);<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>                        int[] pos = pi.getPos();<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>                        boolean[] hit = pi.getOmit();<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>                        while (pi.hasNext()) {<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>                                a.copyItemsFromAxes(pos, hit, u);<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>                                int i = shift % s;<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>                                if (i &lt; 0)<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>                                        i += s;<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>                                for (int j = 0; j &lt; s; j++) {<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>                                        v.setObjectAbs(i, u.getObjectAbs(j*is));<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>                                        i += is;<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>                                        if (i &gt;= s) {<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>                                                i %= s;<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>                                        }<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>                                }<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>                                r.setItemsOnAxes(pos, hit, v.getBuffer());<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>                        }<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>                }<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>                return (T) r;<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>        }<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span><a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>        /**<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>         * Roll the specified axis backwards until it lies in given position<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>         * @param a<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>         * @param axis The rolled axis (index in shape array). Other axes are left unchanged in relative positions<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>         * @param start The position with it right of the destination of the rolled axis<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>         * @return dataset with rolled axis<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>         */<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>        public static &lt;T extends Dataset&gt; T rollAxis(final T a, int axis, int start) {<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>                int r = a.getRank();<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>                axis = a.checkAxis(axis);<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>                if (start &lt; 0)<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>                        start += r;<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>                if (start &lt; 0 || start &gt; r) {<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>                        throw new IllegalArgumentException("Start is out of range: it should be &gt;= 0 and &lt;= " + r);<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>                }<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>                if (axis &lt; start)<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>                        start--;<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span><a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>                if (axis == start)<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                        return a;<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span><a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>                ArrayList&lt;Integer&gt; axes = new ArrayList&lt;Integer&gt;();<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>                        if (i != axis) {<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>                                axes.add(i);<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>                        }<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>                }<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>                axes.add(start, axis);<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>                int[] aa = new int[r];<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>                        aa[i] = axes.get(i);<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span>                }<a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>                return (T) a.getTransposedView(aa);<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>        }<a name="line.2360"></a>
+<span class="sourceLineNo">2361</span><a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>        private static SliceND createFlippedSlice(final Dataset a, int axis) {<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>                int[] shape = a.getShapeRef();<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>                SliceND slice = new SliceND(shape);<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>                slice.flip(axis);<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>                return slice;<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>        }<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span><a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>        /**<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>         * Flip items in left/right direction, column-wise, or along second axis<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>         * @param a dataset must be at least 2D<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>         * @return view of flipped dataset<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>         */<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>        public static &lt;T extends Dataset&gt; T flipLeftRight(final T a) {<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>                if (a.getRank() &lt; 2) {<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>                        throw new IllegalArgumentException("Dataset must be at least 2D");<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>                }<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>                return (T) a.getSliceView(createFlippedSlice(a, 1));<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>        }<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span><a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>        /**<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>         * Flip items in up/down direction, row-wise, or along first axis<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>         * @param a dataset<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>         * @return view of flipped dataset<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>         */<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>        public static &lt;T extends Dataset&gt; T flipUpDown(final T a) {<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>                return (T) a.getSliceView(createFlippedSlice(a, 0));<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>        }<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span><a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>        /**<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>         * Rotate items in first two dimension by 90 degrees anti-clockwise<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>         * @param a dataset must be at least 2D<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>         * @return view of flipped dataset<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>         */<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>        public static &lt;T extends Dataset&gt; T rotate90(final T a) {<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>                return rotate90(a, 1);<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>        }<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span><a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>        /**<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>         * Rotate items in first two dimension by 90 degrees anti-clockwise<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>         * @param a dataset must be at least 2D<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>         * @param k number of 90-degree rotations<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>         * @return view of flipped dataset<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>         */<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>        public static &lt;T extends Dataset&gt; T rotate90(final T a, int k) {<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>                k = k % 4;<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>                while (k &lt; 0) {<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>                        k += 4;<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>                }<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>                int r = a.getRank();<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>                if (r &lt; 2) {<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>                        throw new IllegalArgumentException("Dataset must be at least 2D");<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>                }<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>                switch (k) {<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>                case 1: case 3:<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>                        int[] axes = new int[r];<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>                        axes[0] = 1;<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>                        axes[1] = 0;<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>                        for (int i = 2; i &lt; r; i++) {<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>                                axes[i] = i;<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>                        }<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>                        Dataset t = a.getTransposedView(axes);<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>                        return (T) t.getSliceView(createFlippedSlice(t, k == 1 ? 0 : 1));<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>                case 2:<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>                        SliceND s = createFlippedSlice(a, 0);<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>                        s.flip(1);<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>                        return (T) a.getSliceView(s);<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>                default:<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>                case 0:<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>                        return a;<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>                }<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>        }<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span><a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>        /**<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>         * Select content according where condition is true. All inputs are broadcasted to a maximum shape<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>         * @param condition boolean dataset<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>         * @param x<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>         * @param y<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>         * @return dataset where content is x or y depending on whether condition is true or otherwise<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>         */<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>        public static Dataset select(BooleanDataset condition, Object x, Object y) {<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>                Object[] all = new Object[] {condition, x, y};<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>                Dataset[] dAll = BroadcastUtils.convertAndBroadcast(all);<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>                condition = (BooleanDataset) dAll[0];<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>                Dataset dx = dAll[1];<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>                Dataset dy = dAll[2];<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>                int dt = DTypeUtils.getBestDType(dx.getDType(),dy.getDType());<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>                int ds = Math.max(dx.getElementsPerItem(), dy.getElementsPerItem());<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span><a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>                @SuppressWarnings("deprecation")<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>                Dataset r = DatasetFactory.zeros(ds, condition.getShapeRef(), dt);<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>                IndexIterator iter = condition.getIterator(true);<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>                final int[] pos = iter.getPos();<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>                int i = 0;<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>                while (iter.hasNext()) {<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>                        r.setObjectAbs(i++, condition.getElementBooleanAbs(iter.index) ? dx.getObject(pos) : dy.getObject(pos));<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>                }<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>                return r;<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>        }<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span><a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>        /**<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>         * Select content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>         * @param conditions array of boolean datasets<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>         * @param choices array of datasets or objects<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>         * @param def default value (can be a dataset)<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>         * @return dataset<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>         */<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>        public static Dataset select(BooleanDataset[] conditions, Object[] choices, Object def) {<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>                final int n = conditions.length;<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>                if (choices.length != n) {<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>                        throw new IllegalArgumentException("Choices list is not same length as conditions list");<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>                }<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>                Object[] all = new Object[2*n];<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>                System.arraycopy(conditions, 0, all, 0, n);<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>                System.arraycopy(choices, 0, all, n, n);<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>                Dataset[] dAll = BroadcastUtils.convertAndBroadcast(all);<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>                conditions = new BooleanDataset[n];<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>                Dataset[] dChoices = new Dataset[n];<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>                System.arraycopy(dAll, 0, conditions, 0, n);<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>                System.arraycopy(dAll, n, dChoices, 0, n);<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>                int dt = -1;<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>                int ds = -1;<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>                        Dataset a = dChoices[i];<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>                        int t = a.getDType();<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>                        if (t &gt; dt)<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>                                dt = t;<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>                        int s = a.getElementsPerItem();<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>                        if (s &gt; ds)<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>                                ds = s;<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>                }<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>                if (dt &lt; 0 || ds &lt; 1) {<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>                        throw new IllegalArgumentException("Dataset types of choices are invalid");<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>                }<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span><a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>                @SuppressWarnings("deprecation")<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>                Dataset r = DatasetFactory.zeros(ds, conditions[0].getShapeRef(), dt);<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>                Dataset d = DatasetFactory.createFromObject(def).getBroadcastView(r.getShapeRef());<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>                PositionIterator iter = new PositionIterator(r.getShapeRef());<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>                final int[] pos = iter.getPos();<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>                int i = 0;<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>                while (iter.hasNext()) {<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>                        int j = 0;<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>                        for (; j &lt; n; j++) {<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>                                if (conditions[j].get(pos)) {<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>                                        r.setObjectAbs(i++, dChoices[j].getObject(pos));<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>                                        break;<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>                                }<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>                        }<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>                        if (j == n) {<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>                                r.setObjectAbs(i++, d.getObject(pos));<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>                        }<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>                }<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>                return r;<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>        }<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span><a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>        /**<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>         * Choose content from choices where condition is true, otherwise use default. All inputs are broadcasted to a maximum shape<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>         * @param index integer dataset (ideally, items should be in [0, n) range, if there are n choices)<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>         * @param choices array of datasets or objects<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>         * @param throwAIOOBE if true, throw array index out of bound exception<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>         * @param clip true to clip else wrap indices out of bounds; only used when throwAOOBE is false<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>         * @return dataset<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>         */<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>        public static Dataset choose(IntegerDataset index, Object[] choices, boolean throwAIOOBE, boolean clip) {<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>                final int n = choices.length;<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>                Object[] all = new Object[n + 1];<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>                System.arraycopy(choices, 0, all, 0, n);<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>                all[n] = index;<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>                Dataset[] dChoices = BroadcastUtils.convertAndBroadcast(all);<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>                int dt = -1;<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>                int ds = -1;<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>                int mr = -1;<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>                        Dataset a = dChoices[i];<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>                        int r = a.getRank();<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>                        if (r &gt; mr)<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>                                mr = r;<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>                        int t = a.getDType();<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>                        if (t &gt; dt)<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>                                dt = t;<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>                        int s = a.getElementsPerItem();<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>                        if (s &gt; ds)<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>                                ds = s;<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>                }<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>                if (dt &lt; 0 || ds &lt; 1) {<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>                        throw new IllegalArgumentException("Dataset types of choices are invalid");<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>                }<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>                index = (IntegerDataset) dChoices[n];<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>                dChoices[n] = null;<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span><a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>                @SuppressWarnings("deprecation")<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>                Dataset r = DatasetFactory.zeros(ds, index.getShape(), dt);<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>                IndexIterator iter = index.getIterator(true);<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>                final int[] pos = iter.getPos();<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>                int i = 0;<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>                while (iter.hasNext()) {<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>                        int j = index.getAbs(iter.index);<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>                        if (j &lt; 0) {<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>                                if (throwAIOOBE)<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>                                        throw new ArrayIndexOutOfBoundsException(j);<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>                                if (clip) {<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>                                        j = 0;<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>                                } else {<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>                                        j %= n;<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>                                        j += n; // as remainder still negative<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>                                }<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>                        }<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>                        if (j &gt;= n) {<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>                                if (throwAIOOBE)<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>                                        throw new ArrayIndexOutOfBoundsException(j);<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>                                if (clip) {<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>                                        j = n - 1;<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>                                } else {<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>                                        j %= n;<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>                                }<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>                        }<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>                        Dataset c = dChoices[j];<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>                        r.setObjectAbs(i++, c.getObject(pos));<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>                }<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>                return r;<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>        }<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span><a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>        /**<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>         * Calculate positions in given shape from a dataset of 1-D indexes<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>         * @param indices<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>         * @param shape<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>         * @return list of positions as integer datasets<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>         */<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>        public static List&lt;IntegerDataset&gt; calcPositionsFromIndexes(Dataset indices, int[] shape) {<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>                int rank = shape.length;<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>                List&lt;IntegerDataset&gt; posns = new ArrayList&lt;IntegerDataset&gt;();<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>                int[] iShape = indices.getShapeRef();<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>                        posns.add(new IntegerDataset(iShape));<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>                }<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>                IndexIterator it = indices.getIterator(true);<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>                int[] pos = it.getPos();<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>                while (it.hasNext()) {<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>                        int n = indices.getInt(pos);<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>                        int[] p = ShapeUtils.getNDPositionFromShape(n, shape);<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>                                posns.get(i).setItem(p[i], pos);<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>                        }<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>                }<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>                return posns;<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>        }<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span><a name="line.2608"></a>
+<span class="sourceLineNo">2609</span><a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>        /**<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>         * Calculate indexes in given shape from datasets of position<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>         * @param positions as a list of datasets where each holds the position in a dimension<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>         * @param shape<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>         * @param mode either null, zero-length, unit length or length of rank of shape where<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>         *  0 = raise exception, 1 = wrap, 2 = clip<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>         * @return indexes as an integer dataset<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>         */<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>        public static IntegerDataset calcIndexesFromPositions(List&lt;? extends Dataset&gt; positions, int[] shape, int... mode) {<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>                int rank = shape.length;<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>                if (positions.size() != rank) {<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>                        throw new IllegalArgumentException("Number of position datasets must be equal to rank of shape");<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>                }<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span><a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>                if (mode == null || mode.length == 0) {<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>                        mode = new int[rank];<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>                } else if (mode.length == 1) {<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>                        int m = mode[0];<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>                        mode = new int[rank];<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>                        Arrays.fill(mode, m);<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>                } else if (mode.length != rank) {<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>                        throw new IllegalArgumentException("Mode length greater than one must match rank of shape");<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>                }<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>                        int m = mode[i];<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>                        if (m &lt; 0 || m &gt; 2) {<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>                                throw new IllegalArgumentException("Unknown mode value - it must be 0, 1, or 2");<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>                        }<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>                }<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span><a name="line.2639"></a>
+<span class="sourceLineNo">2640</span>                Dataset p = positions.get(0);<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>                IntegerDataset indexes = new IntegerDataset(p.getShapeRef());<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>                IndexIterator it = p.getIterator(true);<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>                int[] iPos = it.getPos();<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>                int[] tPos = new int[rank];<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>                while (it.hasNext()) {<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>                                p = positions.get(i);<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>                                int j = p.getInt(iPos);<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span>                                int d = shape[i];<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span>                                if (mode[i] == 0) {<a name="line.2650"></a>
+<span class="sourceLineNo">2651</span>                                        if (j &lt; 0 || j &gt;= d) {<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>                                                throw new ArrayIndexOutOfBoundsException("Position value exceeds dimension in shape");<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>                                        }<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                                } else if (mode[i] == 1) {<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                                        while (j &lt; 0)<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>                                                j += d;<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>                                        while (j &gt;= d)<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>                                                j -= d;<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>                                } else {<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>                                        if (j &lt; 0)<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>                                                j = 0;<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>                                        if (j &gt;= d)<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>                                                j = d - 1;<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>                                }<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>                                tPos[i] = j;<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>                        }<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>                        indexes.set(ShapeUtils.getFlat1DIndex(shape, tPos), iPos);<a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>                }<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span><a name="line.2669"></a>
+<span class="sourceLineNo">2670</span>                return indexes;<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>        }<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span><a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>        /**<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>         * Serialize dataset by flattening it. Discards metadata<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>         * @param data<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>         * @return some java array<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>         */<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>        public static Serializable serializeDataset(final IDataset data) {<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>                Dataset d = convertToDataset(data.getSliceView());<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>                d.clearMetadata(null);<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>                return d.flatten().getBuffer();<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>        }<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span><a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>        /**<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>         * Extract values where condition is non-zero. This is similar to Dataset#getByBoolean but supports broadcasting<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>         * @param data<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>         * @param condition should be broadcastable to data<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>         * @return 1-D dataset of values<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>         */<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>        @SuppressWarnings("deprecation")<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>        public static Dataset extract(final IDataset data, final IDataset condition) {<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>                Dataset a = convertToDataset(data.getSliceView());<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>                Dataset b = cast(condition.getSliceView(), Dataset.BOOL);<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span><a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>                try {<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span>                        return a.getByBoolean(b);<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>                } catch (IllegalArgumentException e) {<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>                        final int length = ((Number) b.sum()).intValue();<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span><a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>                        BroadcastPairIterator it = new BroadcastPairIterator(a, b, null, false);<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>                        int size = ShapeUtils.calcSize(it.getShape());<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>                        Dataset c;<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>                        if (length &lt; size) {<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>                                int[] ashape = it.getFirstShape();<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>                                int[] bshape = it.getSecondShape();<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>                                int r = ashape.length;<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>                                size = length;<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>                                        int s = ashape[i];<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span>                                        if (s &gt; 1 &amp;&amp; bshape[i] == 1) {<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>                                                size *= s;<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>                                        }<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>                                }<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>                        }<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>                        c = DatasetFactory.zeros(new int[] {size}, a.getDType());<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span><a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>                        int i = 0;<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>                        if (it.isOutputDouble()) {<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>                                while (it.hasNext()) {<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>                                        if (it.bLong != 0) {<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>                                                c.setObjectAbs(i++, it.aDouble);<a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>                                        }<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>                                }<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>                        } else {<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>                                while (it.hasNext()) {<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>                                        if (it.bLong != 0) {<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>                                                c.setObjectAbs(i++, it.aLong);<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>                                        }<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>                                }<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>                        }<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span><a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>                        return c;<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>                }<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>        }<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span>}<a name="line.2735"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DateDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DateDataset.html
new file mode 100644
index 0000000..e66151c
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DateDataset.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Date;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Interface for a dataset containing {@link Date}s.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>public interface DateDataset extends Dataset {<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        /**<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * Get the first date. The dataset must not be null<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         * @return date<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @since 2.0<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public Date getDate();<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        <a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * Get the date at index i. The dataset must be 1D<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param i<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @return date<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public Date getDate(final int i);<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        <a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * Get the date at index i, j. The dataset must be 2D<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param i<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param j<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return date<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public Date getDate(final int i, final int j);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        <a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * Get the date at given indices<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param pos indices<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return date<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public Date getDate(final int... pos);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        <a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Get the date at the given absolute index. See warning for {@link Dataset} interface.<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param index<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return date<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public Date getDateAbs(final int index);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        <a name="line.54"></a>
+<span class="sourceLineNo">055</span>}<a name="line.55"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DateDatasetImpl.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DateDatasetImpl.html
new file mode 100644
index 0000000..ab2c545
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DateDatasetImpl.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.text.ParseException;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.text.SimpleDateFormat;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.Date;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>public class DateDatasetImpl extends StringDataset implements DateDataset {<a name="line.16"></a>
+<span class="sourceLineNo">017</span>        // pin UID to base class<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        private static final SimpleDateFormat ISO8601_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        <a name="line.21"></a>
+<span class="sourceLineNo">022</span>        static DateDatasetImpl createFromObject(final Object obj) {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>                final DateDatasetImpl result = new DateDatasetImpl();<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                result.size = ShapeUtils.calcSize(result.shape);<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                result.odata = result.data = createArray(result.size);<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                <a name="line.27"></a>
+<span class="sourceLineNo">028</span>                final int[] pos = new int[result.shape.length];<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                result.fillData(obj, 0, pos);<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                <a name="line.30"></a>
+<span class="sourceLineNo">031</span>                return result;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        }<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * Create a null dataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        DateDatasetImpl() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                super();<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        <a name="line.40"></a>
+<span class="sourceLineNo">041</span>        DateDatasetImpl(final int... shape) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                super(shape);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        <a name="line.44"></a>
+<span class="sourceLineNo">045</span>        DateDatasetImpl(final Date[] data, int... shape) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                super(datesToStrings(data), shape);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        <a name="line.48"></a>
+<span class="sourceLineNo">049</span>        private static String[] datesToStrings(final Date[] dates) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final String[] dateStrings = new String[dates.length];<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                for (int i = 0; i &lt; dates.length; i++) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        dateStrings[i] = dateToString(dates[i]);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                <a name="line.54"></a>
+<span class="sourceLineNo">055</span>                return dateStrings;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        <a name="line.57"></a>
+<span class="sourceLineNo">058</span>        private static String dateToString(final Date date) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                if (date != null) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        return ISO8601_DATE_FORMAT.format(date);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                }<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                <a name="line.62"></a>
+<span class="sourceLineNo">063</span>                return null;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        <a name="line.65"></a>
+<span class="sourceLineNo">066</span>        private static String objectToDateString(final Object obj) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                if (obj instanceof Date) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        return dateToString((Date) obj);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                } else if (obj instanceof Dataset) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        Dataset dataset = (Dataset) obj;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        if (dataset.getSize() != 1) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                logger.error("Given dataset must only have one item");<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        }<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        <a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        return objectToDateString(dataset.getObjectAbs(dataset.getOffset()));<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                } else if (obj instanceof IDataset) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        IDataset dataset = (IDataset) obj;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (dataset.getSize() != 1) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                logger.error("Given dataset must only have one item");<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                throw new IllegalArgumentException("Given dataset must have only one item");<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        return objectToDateString(dataset.getObject(new int[dataset.getRank()]));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                } else {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        logger.error("Argument is of unsupported class");<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                }<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        <a name="line.89"></a>
+<span class="sourceLineNo">090</span>        private static Date stringToDate(final String dateAsString) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (dateAsString != null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        try {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                return ISO8601_DATE_FORMAT.parse(dateAsString);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        } catch (ParseException e) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                // fall through to return null<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                logger.error("Could not parse datetime: " + dateAsString);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                <a name="line.99"></a>
+<span class="sourceLineNo">100</span>                return null;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        <a name="line.102"></a>
+<span class="sourceLineNo">103</span>        @Override<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        public Date getDate() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                final String dateAsString = super.getString();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                return stringToDate(dateAsString);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public Date getDate(int i) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                final String dateAsString = super.getString(i);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                return stringToDate(dateAsString);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        public Date getDate(int i, int j) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                final String dateAsString = super.getString(i, j);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                return stringToDate(dateAsString);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        public Date getDate(int... pos) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                final String dateAsString = super.getString(pos);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return stringToDate(dateAsString);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        public Date getDateAbs(int index) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                final String dateAsString = super.getStringAbs(index);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                if (dateAsString != null) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        return stringToDate(dateAsString);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                <a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return null;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        <a name="line.136"></a>
+<span class="sourceLineNo">137</span>        @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        public void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                if (src instanceof String[]) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        super.setItemDirect(dindex, sindex, src);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                } else if (src instanceof Date[]) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        String[] datesAsStrings = datesToStrings((Date[]) src);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        data[dindex] = datesAsStrings[sindex];<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                } else {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        logger.error("Argument is of unsupported class");<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException("Argument is of unsupported class");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>        public void setAbs(final int index, final Date date) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                data[index] = dateToString(date);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                setDirty();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        <a name="line.154"></a>
+<span class="sourceLineNo">155</span>        /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @since 2.0<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         */<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public void setItem(final Date value) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                setAbs(getFirst1DIndex(), value);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        <a name="line.161"></a>
+<span class="sourceLineNo">162</span>        public void setItem(final Date value, final int i) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                setAbs(get1DIndex(i), value);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        <a name="line.165"></a>
+<span class="sourceLineNo">166</span>        public void setItem(final Date value, final int i, final int j) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                setAbs(get1DIndex(i, j), value);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        <a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public void setItem(final Date value, final int... pos) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                setAbs(get1DIndex(pos), value);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        }<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>        @Override<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        public void set(final Object obj) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                setItem(objectToDateString(obj));<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public void set(final Object obj, final int i) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                setItem(objectToDateString(obj), i);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public void set(final Object obj, final int i, final int j) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                setItem(objectToDateString(obj), i, j);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        <a name="line.188"></a>
+<span class="sourceLineNo">189</span>        @Override<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        public void set(final Object obj, int... pos) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        pos = new int[shape.length];<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                <a name="line.194"></a>
+<span class="sourceLineNo">195</span>                setItem(objectToDateString(obj), pos);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        <a name="line.197"></a>
+<span class="sourceLineNo">198</span>        @Override<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        public StringDatasetBase sort(Integer axis) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                // Note yet supported.<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                // TODO: this method will be inefficient as we store dates formatted as strings<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                throw new UnsupportedOperationException("Cannot sort dataset");<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>}<a name="line.205"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DoubleDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DoubleDataset.html
new file mode 100644
index 0000000..674939b
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/DoubleDataset.html
@@ -0,0 +1,1386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// GEN_COMMENT<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex; // NAN_OMIT<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for double values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class DoubleDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected double[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (double[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static double[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                double[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new double[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return FLOAT64; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        DoubleDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        DoubleDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        <a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        DoubleDataset(final double[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        DoubleDataset(final DoubleDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        DoubleDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = dataset.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (!super.equals(obj)) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                DoubleDataset other = (DoubleDataset) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//              if (size == 1) // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator iter = getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                IndexIterator oiter = other.getIterator();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                return false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return true;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int hashCode() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return super.hashCode();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public DoubleDataset clone() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return new DoubleDataset(this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * sequences or arrays are padded with zeros.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * <a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param obj<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return dataset with contents given by input<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static DoubleDataset createFromObject(final Object obj) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                DoubleDataset result = new DoubleDataset();<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (obj != null) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        <a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                result.odata = result.data = createArray(result.size);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } catch (Throwable t) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                throw new IllegalArgumentException(t);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        <a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] pos = new int[result.shape.length];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        result.fillData(obj, 0, pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return result;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         // NAN_OMIT<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /** // NAN_OMIT<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * // NAN_OMIT<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param stop // NAN_OMIT<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return a new 1D dataset, filled with values determined by parameters // NAN_OMIT<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */ // NAN_OMIT<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        static DoubleDataset createRange(final double stop) { // NAN_OMIT<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return createRange(0, stop, 1); // NAN_OMIT<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        } // NAN_OMIT<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         // NAN_OMIT<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /** // NAN_OMIT<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * // NAN_OMIT<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param start // NAN_OMIT<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param stop // NAN_OMIT<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param step // NAN_OMIT<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @return a new 1D dataset, filled with values determined by parameters // NAN_OMIT<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         */ // NAN_OMIT<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        static DoubleDataset createRange(final double start, final double stop, final double step) { // NAN_OMIT<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int size = calcSteps(start, stop, step); // NAN_OMIT<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                DoubleDataset result = new DoubleDataset(size); // NAN_OMIT<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                for (int i = 0; i &lt; size; i++) { // NAN_OMIT<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        result.data[i] = (start + i * step); // PRIM_TYPE // NAN_OMIT // ADD_CAST<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                } // NAN_OMIT<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return result; // NAN_OMIT<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        } // NAN_OMIT<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param shape<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return a dataset filled with ones<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        static DoubleDataset ones(final int... shape) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return new DoubleDataset(shape).fill(1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public DoubleDataset fill(final Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                setDirty();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                IndexIterator iter = getIterator();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                while (iter.hasNext()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        data[iter.index] = dv;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return this;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * This is a typed version of {@link #getBuffer()}<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return data buffer as linear array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public double[] getData() { // PRIM_TYPE<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return data;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        @Override<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        protected int getBufferLength() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (data == null)<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return data.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public DoubleDataset getView(boolean deepCopyMetadata) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                DoubleDataset view = new DoubleDataset();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                view.setData();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return view;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * <a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param index<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            absolute index<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return value<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         */<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public double getAbs(final int index) { // PRIM_TYPE<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return data[index];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public double getElementDoubleAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index]; // BOOLEAN_ZERO<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public long getElementLongAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return DTypeUtils.toLong(data[index]); // BOOLEAN_ZERO // OMIT_TOLONG_INT<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public Object getObjectAbs(final int index) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return data[index];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public String getStringAbs(final int index) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        stringFormat.format(data[index]);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * <a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param index<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            absolute index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param val<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         *            new value<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public void setAbs(final int index, final double val) { // PRIM_TYPE<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                setDirty();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                data[index] = val;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                setDirty();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                double[] dsrc = (double[]) src; // PRIM_TYPE<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                data[dindex] = dsrc[sindex];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>                setAbs(index, DTypeUtils.toReal(obj)); // FROM_OBJECT<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in first position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @since 2.0<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public double get() { // PRIM_TYPE<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return data[getFirst1DIndex()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param i<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in given position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public double get(final int i) { // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return data[get1DIndex(i)];<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @param i<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param j<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public double get(final int i, final int j) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return data[get1DIndex(i, j)];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param pos<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public double get(final int... pos) { // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return data[get1DIndex(pos)];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Double.valueOf(get()); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int i) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Double.valueOf(get(i)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public Object getObject(final int i, final int j) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return Double.valueOf(get(i, j)); // CLASS_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public Object getObject(final int... pos) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return Double.valueOf(get(pos)); // CLASS_TYPE<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString() {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(getFirst1DIndex());<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int i) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(i));<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public String getString(final int i, final int j) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return getStringAbs(get1DIndex(i, j));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public String getString(final int... pos) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return getStringAbs(get1DIndex(pos));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get(); // BOOLEAN_ZERO<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int i) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get(i); // BOOLEAN_ZERO<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double getDouble(final int i, final int j) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return get(i, j); // BOOLEAN_ZERO<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public double getDouble(final int... pos) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return get(pos); // BOOLEAN_ZERO<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>        @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public float getFloat() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return (float) get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int i) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return (float) get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public float getFloat(final int i, final int j) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return (float) get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public float getFloat(final int... pos) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return (float) get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return (long) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int i) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return (long) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public long getLong(final int i, final int j) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return (long) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public long getLong(final int... pos) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return (long) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt() {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int i) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int getInt(final int i, final int j) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public int getInt(final int... pos) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int i) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getShort(final int i, final int j) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public short getShort(final int... pos) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int i) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public byte getByte(final int i, final int j) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public byte getByte(final int... pos) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public boolean getBoolean(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return get(i, j) != 0; // BOOLEAN_FALSE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public boolean getBoolean(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return get(pos) != 0; // BOOLEAN_FALSE<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         * <a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @since 2.0<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final double value) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(getFirst1DIndex(), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * <a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void setItem(final double value, final int i) { // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setAbs(get1DIndex(i), value);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * <a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param value<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param i<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param j<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final double value, final int i, final int j) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(i, j), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * Sets the value at a particular point to the passed value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * <a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @param value<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param pos<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void setItem(final double value, final int... pos) { // PRIM_TYPE<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setAbs(get1DIndex(pos), value);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem(DTypeUtils.toReal(obj)); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, final int i) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                setItem(DTypeUtils.toReal(obj), i); // FROM_OBJECT<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        @Override<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void set(final Object obj, final int i, final int j) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                setItem(DTypeUtils.toReal(obj), i, j); // FROM_OBJECT<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public void set(final Object obj, int... pos) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        pos = new int[shape.length];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                setItem(DTypeUtils.toReal(obj), pos); // FROM_OBJECT<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public void resize(int... newShape) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                setDirty();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final IndexIterator iter = getIterator();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                final double[] ndata; // PRIM_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                try {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ndata = createArray(nsize);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } catch (Throwable t) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        throw new IllegalArgumentException(t);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        ndata[i] = data[iter.index];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span>                odata = data = ndata;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                size = nsize;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                shape = newShape;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                stride = null;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                offset = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                base = null;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        @Override<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public DoubleDataset sort(Integer axis) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                setDirty(); // BOOLEAN_OMIT<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (axis == null) { // BOOLEAN_OMIT<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        if (stride == null) { // BOOLEAN_OMIT<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                Arrays.sort(data); // BOOLEAN_OMIT<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        } else { // BOOLEAN_OMIT<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                DoubleDataset ads = clone().sort(null); // BOOLEAN_OMIT<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                setSlicedView(getView(false), ads); // BOOLEAN_OMIT<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        } // BOOLEAN_OMIT<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                } else { // BOOLEAN_OMIT<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        axis = checkAxis(axis); // BOOLEAN_OMIT<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                         // BOOLEAN_OMIT <a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        DoubleDataset ads = new DoubleDataset(shape[axis]); // BOOLEAN_OMIT<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        PositionIterator pi = getPositionIterator(axis); // BOOLEAN_OMIT<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        int[] pos = pi.getPos(); // BOOLEAN_OMIT<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        boolean[] hit = pi.getOmit(); // BOOLEAN_OMIT<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        while (pi.hasNext()) { // BOOLEAN_OMIT<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                copyItemsFromAxes(pos, hit, ads); // BOOLEAN_OMIT<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                Arrays.sort(ads.data); // BOOLEAN_OMIT<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                setItemsOnAxes(pos, hit, ads.data); // BOOLEAN_OMIT<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        } // BOOLEAN_OMIT<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                } // BOOLEAN_OMIT<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                return this; // BOOLEAN_OMIT<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public DoubleDataset getUniqueItems() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                Set&lt;Double&gt; set = new TreeSet&lt;Double&gt;(); // CLASS_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                IndexIterator it = getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        set.add(data[it.index]);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                DoubleDataset u = new DoubleDataset(set.size()); // CLASS_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                double[] udata = u.getData(); // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                for (Double v : set) { // CLASS_TYPE<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        udata[i++] = v;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return u;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>        @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        public DoubleDataset getSlice(final SliceIterator siter) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                DoubleDataset result = new DoubleDataset(siter.getShape());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                double[] rdata = result.data; // PRIM_TYPE<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        rdata[i] = data[siter.index];<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                result.setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                double[] rdata = ((DoubleDataset) result).data; // PRIM_TYPE<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        rdata[riter.index] = data[iter.index];<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public DoubleDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                setDirty();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (obj instanceof Dataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final Dataset ds = (Dataset) obj;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (length != ds.getSize()) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                throw new IllegalArgumentException(<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[biter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (biter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[biter.index] = dv;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                return this;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        public DoubleDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                if (obj instanceof Dataset) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        final Dataset ds = (Dataset) obj;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        if (index.getSize() != ds.getSize()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                throw new IllegalArgumentException(<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                data[iter.index] = ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        while (iter.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                data[iter.index] = dv;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return this;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public DoubleDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                setDirty();<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final int[] pos = iter.getPos();<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                if (obj instanceof Dataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        final Dataset ds = (Dataset) obj;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                throw new IllegalArgumentException(<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                setItem(ds.getElementDoubleAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final double dv = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        while (iter.hasNext()) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                setItem(dv, pos);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return this;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        DoubleDataset setSlicedView(Dataset view, Dataset d) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                setDirty();<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        data[it.aIndex] = it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public DoubleDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                if (obj instanceof IDataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final IDataset ds = (IDataset) obj;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final int[] oshape = ds.getShape();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException(String.format(<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                                Arrays.toString(siter.getShape())));<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (ds instanceof Dataset) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final Dataset ads = (Dataset) ds;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        data[siter.index] = ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                final int[] pos = oiter.getPos();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[siter.index] = ds.getDouble(pos); // PRIM_TYPE<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                } else {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                double v = DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (siter.hasNext())<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        data[siter.index] = v;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } catch (IllegalArgumentException e) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                return this;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Override<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                double[] ddata = (double[]) dest.getBuffer(); // PRIM_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                dest.setDirty();<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        ddata[diter.index] = data[siter.index];<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        @Override<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                setDirty();<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                double[] sdata = (double[]) src; // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        data[siter.index] = sdata[i];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        private List&lt;int[]&gt; findPositions(final double value) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                IndexIterator iter = getIterator(true);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] pos = iter.getPos();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                if (Double.isNaN(value)) { // CLASS_TYPE // REAL_ONLY<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        while (iter.hasNext()) { // REAL_ONLY<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                if (Double.isNaN(data[iter.index])) { // REAL_ONLY<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        posns.add(pos.clone()); // REAL_ONLY<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                } // REAL_ONLY<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        } // REAL_ONLY<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                } else // REAL_ONLY<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        while (iter.hasNext()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                if (data[iter.index] == value) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                        posns.add(pos.clone());<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                }<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                return posns;<a name="line.911"></a>
+<span class="sourceLineNo">912</span>        }<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>        @Override<a name="line.914"></a>
+<span class="sourceLineNo">915</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE // NAN_OMIT<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>                if (max == null) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        max = findPositions(md.getMaximum(ignoreInvalids).doubleValue()); // PRIM_TYPE // NAN_OMIT<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        md.setMaximumPositions(max);<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                }<a name="line.927"></a>
+<span class="sourceLineNo">928</span><a name="line.928"></a>
+<span class="sourceLineNo">929</span>                return max.get(0); // first maximum<a name="line.929"></a>
+<span class="sourceLineNo">930</span>        }<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>        @Override<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE // NAN_OMIT<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>                if (min == null) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        min = findPositions(md.getMinimum(ignoreInvalids).doubleValue()); // PRIM_TYPE // NAN_OMIT<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        md.setMinimumPositions(min);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                }<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>                return min.get(0); // first minimum<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span><a name="line.949"></a>
+<span class="sourceLineNo">950</span>        @Override<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        public boolean containsNans() {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                        if (Double.isNaN(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                return true; // REAL_ONLY<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                } // REAL_ONLY<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                return false;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>        @Override<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        public boolean containsInfs() {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (Double.isInfinite(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                return true; // REAL_ONLY<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                } // REAL_ONLY<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                return false;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>        @Override<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        public boolean containsInvalidNumbers() {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        double x = data[iter.index]; // PRIM_TYPE // REAL_ONLY<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        if (Double.isNaN(x) || Double.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                return true; // REAL_ONLY<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } // REAL_ONLY<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                return false;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>        }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>        @Override<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        public DoubleDataset iadd(final Object b) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                setDirty(); // NAN_OMIT<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        if (useLong) { // NAN_OMIT<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        data[it.index] += lb; // NAN_OMIT<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                } // NAN_OMIT<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        } else { // NAN_OMIT<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        data[it.index] += db; // NAN_OMIT<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                } // NAN_OMIT<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        } // NAN_OMIT<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                } else { // NAN_OMIT<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        if (useLong) { // NAN_OMIT<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        data[it.aIndex] += it.bLong; // NAN_OMIT<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                } // NAN_OMIT<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        } else { // NAN_OMIT<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        data[it.aIndex] += it.bDouble; // NAN_OMIT<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                } // NAN_OMIT<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        } // NAN_OMIT<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                } // NAN_OMIT<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                return this;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>        @Override<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        public DoubleDataset isubtract(final Object b) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                setDirty(); // NAN_OMIT<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        if (useLong) { // NAN_OMIT<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                        data[it.index] -= lb; // NAN_OMIT<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                } // NAN_OMIT<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        } else { // NAN_OMIT<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                        data[it.index] -= db; // NAN_OMIT<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                } // NAN_OMIT<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        } // NAN_OMIT<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                } else { // NAN_OMIT<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        if (useLong) { // NAN_OMIT<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                it.setOutputDouble(false); // NAN_OMIT<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        data[it.aIndex] -= it.bLong; // NAN_OMIT<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                } // NAN_OMIT<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        } else { // NAN_OMIT<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                it.setOutputDouble(true); // NAN_OMIT<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        data[it.aIndex] -= it.bDouble; // NAN_OMIT<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                } // NAN_OMIT<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        } // NAN_OMIT<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                } // NAN_OMIT<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                return this;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span><a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        @Override<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public DoubleDataset imultiply(final Object b) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                setDirty(); // NAN_OMIT<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        if (useLong) { // NAN_OMIT<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        data[it.index] *= lb; // NAN_OMIT<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                } // NAN_OMIT<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else { // NAN_OMIT<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        data[it.index] *= db; // NAN_OMIT<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                } // NAN_OMIT<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        } // NAN_OMIT<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                } else { // NAN_OMIT<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        if (useLong) { // NAN_OMIT<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                        data[it.aIndex] *= it.bLong; // NAN_OMIT<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                } // NAN_OMIT<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        } else { // NAN_OMIT<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        data[it.aIndex] *= it.bDouble; // NAN_OMIT<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } // NAN_OMIT<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        } // NAN_OMIT<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                } // NAN_OMIT<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                return this;<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public DoubleDataset idivide(final Object b) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                setDirty(); // NAN_OMIT<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        if (useLong) { // NAN_OMIT<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        data[it.index] /= lb; // NAN_OMIT<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                } // NAN_OMIT<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                // } // INT_USE // NAN_OMIT<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        } else { // NAN_OMIT<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                final double db = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                // if (db == 0) { // INT_USE // NAN_OMIT<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                        data[it.index] /= db; // NAN_OMIT<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                } // NAN_OMIT<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                // } // INT_USE // NAN_OMIT<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        } // NAN_OMIT<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                } else { // NAN_OMIT<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        if (useLong) { // NAN_OMIT<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                        // if (it.bLong == 0) { // INT_USE // NAN_OMIT<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        data[it.aIndex] /= it.bLong; // NAN_OMIT<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                } // NAN_OMIT<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        } else { // NAN_OMIT<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        // if (it.bDouble == 0) { // INT_USE // NAN_OMIT<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        data[it.aIndex] /= it.bDouble; // NAN_OMIT<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                } // NAN_OMIT<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        } // NAN_OMIT<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                } // NAN_OMIT<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                return this;<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        }<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        @Override<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        public DoubleDataset ifloor() {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                setDirty(); // REAL_ONLY<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        data[it.index] = Math.floor(data[it.index]); // PRIM_TYPE // REAL_ONLY // ADD_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                } // REAL_ONLY<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                return this;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        @Override<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>        public DoubleDataset iremainder(final Object b) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                setDirty(); // NAN_OMIT<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                boolean useLong = bds.getElementClass().equals(Long.class); // NAN_OMIT<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (useLong) { // NAN_OMIT<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        data[it.index] %= lb; // NAN_OMIT<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                } // NAN_OMIT<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                // } // INT_USE // NAN_OMIT<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        } else { // NAN_OMIT<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                final long lb = bds.getElementLongAbs(bOffset); // NAN_OMIT<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                // if (lb == 0) { // INT_USE // NAN_OMIT<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                //      fill(0); // INT_USE // NAN_OMIT<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                // } else { // INT_USE // NAN_OMIT<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        data[it.index] %= lb; // NAN_OMIT<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                } // NAN_OMIT<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                // } // INT_USE // NAN_OMIT<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        } // NAN_OMIT<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                } else { // NAN_OMIT<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        it.setOutputDouble(!useLong); // NAN_OMIT<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                        if (useLong) { // NAN_OMIT<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        data[it.aIndex] %= it.bLong; // NAN_OMIT // INT_EXCEPTION<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                } // NAN_OMIT<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        } else { // NAN_OMIT<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        data[it.aIndex] %= it.bDouble; // NAN_OMIT<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                } // NAN_OMIT<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        } // NAN_OMIT<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                } // NAN_OMIT<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                return this;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>        @Override<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        public DoubleDataset ipower(final Object b) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                setDirty(); // NAN_OMIT<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                if (bds.getSize() == 1) { // NAN_OMIT<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        final int bOffset = bds.getOffset(); // NAN_OMIT<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        final double vr = bds.getElementDoubleAbs(bOffset); // NAN_OMIT<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        final IndexIterator it = getIterator(); // NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        if (bds.isComplex()) { // NAN_OMIT<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1); // NAN_OMIT<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                if (vi == 0) { // NAN_OMIT<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        while (it.hasNext()) { // NAN_OMIT<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                                final double v = Math.pow(data[it.index], vr); // NAN_OMIT<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                // } else { // INT_USE // NAN_OMIT<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                // } // INT_USE // NAN_OMIT<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                        } // NAN_OMIT<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                } else { // NAN_OMIT<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final Complex zv = new Complex(vr, vi); // NAN_OMIT<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        while (it.hasNext()) { // NAN_OMIT<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                Complex zd = new Complex(data[it.index], 0); // NAN_OMIT<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                                final double v = zd.pow(zv).getReal(); // NAN_OMIT<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                                // } else { // INT_USE // NAN_OMIT<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                // } // INT_USE // NAN_OMIT<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        } // NAN_OMIT<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                } // NAN_OMIT<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        } else {// NAN_OMIT<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        final double v = Math.pow(data[it.index], vr); // NAN_OMIT<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        //      data[it.index] = 0; // INT_USE // NAN_OMIT<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        data[it.index] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                } // NAN_OMIT<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        } // NAN_OMIT<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                } else { // NAN_OMIT<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        it.setOutputDouble(true); // NAN_OMIT<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        if (bds.isComplex()) { // NAN_OMIT<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1)); // NAN_OMIT<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal(); // NAN_OMIT<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                } // NAN_OMIT<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                        } else {// NAN_OMIT<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                        final double v = Math.pow(it.aDouble, it.bDouble); // NAN_OMIT<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE // NAN_OMIT<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        //      data[it.aIndex] = 0; // INT_USE // NAN_OMIT<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                        // } else { // INT_USE // NAN_OMIT<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        data[it.aIndex] = v; // PRIM_TYPE_LONG // NAN_OMIT // ADD_CAST<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        // } // INT_USE // NAN_OMIT<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                } // NAN_OMIT<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        } // NAN_OMIT<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                } // NAN_OMIT<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                return this;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>        }<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span><a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>        @Override<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b); // NAN_OMIT<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds); // NAN_OMIT<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                it.setOutputDouble(true); // NAN_OMIT<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                double sum = 0;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                double comp = 0; // NAN_OMIT<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                if (ignoreNaNs) { // REAL_ONLY // NAN_OMIT<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (w == null) { // REAL_ONLY // NAN_OMIT<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) { // REAL_ONLY // NAN_OMIT<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY // NAN_OMIT<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        if (Double.isNaN(diff)) // REAL_ONLY // NAN_OMIT<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                continue; // REAL_ONLY // NAN_OMIT<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        final double err = diff * diff - comp; // REAL_ONLY // NAN_OMIT<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        final double temp = sum + err; // REAL_ONLY // NAN_OMIT<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        comp = (temp - sum) - err; // REAL_ONLY // NAN_OMIT<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        sum = temp; // REAL_ONLY // NAN_OMIT<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                } // REAL_ONLY // NAN_OMIT<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                        } else { // REAL_ONLY // NAN_OMIT<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                IndexIterator itw = w.getIterator(); // REAL_ONLY // NAN_OMIT<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // REAL_ONLY // NAN_OMIT<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY // NAN_OMIT<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                        if (Double.isNaN(diff)) // REAL_ONLY // NAN_OMIT<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                                continue; // REAL_ONLY // NAN_OMIT<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // REAL_ONLY // NAN_OMIT<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        final double temp = sum + err; // REAL_ONLY // NAN_OMIT<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                        comp = (temp - sum) - err; // REAL_ONLY // NAN_OMIT<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        sum = temp; // REAL_ONLY // NAN_OMIT<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                } // REAL_ONLY // NAN_OMIT<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        } // REAL_ONLY // NAN_OMIT<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                } else // REAL_ONLY // NAN_OMIT<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                { // NAN_OMIT<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        if (w == null) { // NAN_OMIT<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                while (it.hasNext()) { // NAN_OMIT<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        final double diff = it.aDouble - it.bDouble; // NAN_OMIT<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                        final double err = diff * diff - comp; // NAN_OMIT<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                        final double temp = sum + err; // NAN_OMIT<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        comp = (temp - sum) - err; // NAN_OMIT<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        sum = temp; // NAN_OMIT<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                } // NAN_OMIT<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else { // NAN_OMIT<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                IndexIterator itw = w.getIterator(); // NAN_OMIT<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // NAN_OMIT<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        final double diff = it.aDouble - it.bDouble; // NAN_OMIT<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // NAN_OMIT<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        final double temp = sum + err; // NAN_OMIT<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        comp = (temp - sum) - err; // NAN_OMIT<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        sum = temp; // NAN_OMIT<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                } // NAN_OMIT<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        } // NAN_OMIT<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                } // NAN_OMIT<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                return sum;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>        }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>}<a name="line.1314"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/FloatDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/FloatDataset.html
new file mode 100644
index 0000000..746982b
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/FloatDataset.html
@@ -0,0 +1,1386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for float values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class FloatDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected float[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (float[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static float[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                float[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new float[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return FLOAT32; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        FloatDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        FloatDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        FloatDataset(final float[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        FloatDataset(final FloatDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        FloatDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (float) dataset.getElementDoubleAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (!super.equals(obj)) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                FloatDataset other = (FloatDataset) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//              if (size == 1) // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator iter = getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                IndexIterator oiter = other.getIterator();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                return false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return true;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int hashCode() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return super.hashCode();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public FloatDataset clone() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return new FloatDataset(this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * sequences or arrays are padded with zeros.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param obj<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return dataset with contents given by input<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static FloatDataset createFromObject(final Object obj) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                FloatDataset result = new FloatDataset();<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (obj != null) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                result.odata = result.data = createArray(result.size);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } catch (Throwable t) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                throw new IllegalArgumentException(t);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] pos = new int[result.shape.length];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        result.fillData(obj, 0, pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return result;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param stop<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        static FloatDataset createRange(final double stop) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return createRange(0, stop, 1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        <a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param start<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param stop<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param step<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        static FloatDataset createRange(final double start, final double stop, final double step) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int size = calcSteps(start, stop, step);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                FloatDataset result = new FloatDataset(size);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                for (int i = 0; i &lt; size; i++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        result.data[i] = (float) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param shape<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return a dataset filled with ones<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        static FloatDataset ones(final int... shape) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return new FloatDataset(shape).fill(1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public FloatDataset fill(final Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                setDirty();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                IndexIterator iter = getIterator();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                while (iter.hasNext()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        data[iter.index] = dv;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return this;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * This is a typed version of {@link #getBuffer()}<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return data buffer as linear array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public float[] getData() { // PRIM_TYPE<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return data;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        @Override<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        protected int getBufferLength() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (data == null)<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return data.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public FloatDataset getView(boolean deepCopyMetadata) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                FloatDataset view = new FloatDataset();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                view.setData();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return view;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param index<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            absolute index<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return value<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         */<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public float getAbs(final int index) { // PRIM_TYPE<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return data[index];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public double getElementDoubleAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index]; // BOOLEAN_ZERO<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public long getElementLongAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return DTypeUtils.toLong(data[index]); // BOOLEAN_ZERO // OMIT_TOLONG_INT<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public Object getObjectAbs(final int index) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return data[index];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public String getStringAbs(final int index) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return stringFormat == null ? String.format("%.8g", data[index]) : // FORMAT_STRING<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        stringFormat.format(data[index]);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param index<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            absolute index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param val<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         *            new value<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public void setAbs(final int index, final float val) { // PRIM_TYPE<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                setDirty();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                data[index] = val;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                setDirty();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                float[] dsrc = (float[]) src; // PRIM_TYPE<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                data[dindex] = dsrc[sindex];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>                setAbs(index, (float) DTypeUtils.toReal(obj)); // FROM_OBJECT<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in first position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @since 2.0<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public float get() { // PRIM_TYPE<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return data[getFirst1DIndex()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param i<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in given position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public float get(final int i) { // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return data[get1DIndex(i)];<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @param i<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param j<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public float get(final int i, final int j) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return data[get1DIndex(i, j)];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param pos<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public float get(final int... pos) { // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return data[get1DIndex(pos)];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Float.valueOf(get()); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int i) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Float.valueOf(get(i)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public Object getObject(final int i, final int j) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return Float.valueOf(get(i, j)); // CLASS_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public Object getObject(final int... pos) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return Float.valueOf(get(pos)); // CLASS_TYPE<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString() {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(getFirst1DIndex());<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int i) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(i));<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public String getString(final int i, final int j) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return getStringAbs(get1DIndex(i, j));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public String getString(final int... pos) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return getStringAbs(get1DIndex(pos));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get(); // BOOLEAN_ZERO<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int i) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get(i); // BOOLEAN_ZERO<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double getDouble(final int i, final int j) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return get(i, j); // BOOLEAN_ZERO<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public double getDouble(final int... pos) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return get(pos); // BOOLEAN_ZERO<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>        @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public float getFloat() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int i) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public float getFloat(final int i, final int j) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public float getFloat(final int... pos) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return (long) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int i) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return (long) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public long getLong(final int i, final int j) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return (long) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public long getLong(final int... pos) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return (long) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt() {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int i) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int getInt(final int i, final int j) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public int getInt(final int... pos) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int i) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getShort(final int i, final int j) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public short getShort(final int... pos) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int i) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public byte getByte(final int i, final int j) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public byte getByte(final int... pos) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public boolean getBoolean(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return get(i, j) != 0; // BOOLEAN_FALSE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public boolean getBoolean(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return get(pos) != 0; // BOOLEAN_FALSE<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @since 2.0<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final float value) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(getFirst1DIndex(), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void setItem(final float value, final int i) { // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setAbs(get1DIndex(i), value);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         *<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param value<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param i<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param j<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final float value, final int i, final int j) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(i, j), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * Sets the value at a particular point to the passed value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         *<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @param value<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param pos<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void setItem(final float value, final int... pos) { // PRIM_TYPE<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setAbs(get1DIndex(pos), value);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem((float) DTypeUtils.toReal(obj)); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, final int i) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                setItem((float) DTypeUtils.toReal(obj), i); // FROM_OBJECT<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        @Override<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void set(final Object obj, final int i, final int j) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                setItem((float) DTypeUtils.toReal(obj), i, j); // FROM_OBJECT<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public void set(final Object obj, int... pos) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        pos = new int[shape.length];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                setItem((float) DTypeUtils.toReal(obj), pos); // FROM_OBJECT<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public void resize(int... newShape) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                setDirty();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final IndexIterator iter = getIterator();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                final float[] ndata; // PRIM_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                try {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ndata = createArray(nsize);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } catch (Throwable t) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        throw new IllegalArgumentException(t);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        ndata[i] = data[iter.index];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span>                odata = data = ndata;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                size = nsize;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                shape = newShape;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                stride = null;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                offset = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                base = null;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        @Override<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public FloatDataset sort(Integer axis) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                setDirty();<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (axis == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        if (stride == null) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                Arrays.sort(data);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        } else {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                FloatDataset ads = clone().sort(null);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                setSlicedView(getView(false), ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                } else {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        axis = checkAxis(axis);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        <a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        FloatDataset ads = new FloatDataset(shape[axis]);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        int[] pos = pi.getPos();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        boolean[] hit = pi.getOmit();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        while (pi.hasNext()) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                Arrays.sort(ads.data);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                return this;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public FloatDataset getUniqueItems() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                Set&lt;Float&gt; set = new TreeSet&lt;Float&gt;(); // CLASS_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                IndexIterator it = getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        set.add(data[it.index]);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                FloatDataset u = new FloatDataset(set.size()); // CLASS_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                float[] udata = u.getData(); // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                for (Float v : set) { // CLASS_TYPE<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        udata[i++] = v;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return u;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>        @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        public FloatDataset getSlice(final SliceIterator siter) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                FloatDataset result = new FloatDataset(siter.getShape());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                float[] rdata = result.data; // PRIM_TYPE<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        rdata[i] = data[siter.index];<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                result.setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                float[] rdata = ((FloatDataset) result).data; // PRIM_TYPE<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        rdata[riter.index] = data[iter.index];<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public FloatDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                setDirty();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (obj instanceof Dataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final Dataset ds = (Dataset) obj;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (length != ds.getSize()) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                throw new IllegalArgumentException(<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[biter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (biter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[biter.index] = dv;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                return this;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        public FloatDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                if (obj instanceof Dataset) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        final Dataset ds = (Dataset) obj;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        if (index.getSize() != ds.getSize()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                throw new IllegalArgumentException(<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                data[iter.index] = (float) ds.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        while (iter.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                data[iter.index] = dv;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return this;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public FloatDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                setDirty();<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final int[] pos = iter.getPos();<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                if (obj instanceof Dataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        final Dataset ds = (Dataset) obj;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                throw new IllegalArgumentException(<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                setItem((float) ds.getElementDoubleAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final float dv = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        while (iter.hasNext()) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                setItem(dv, pos);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return this;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        FloatDataset setSlicedView(Dataset view, Dataset d) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                setDirty();<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        data[it.aIndex] = (float) it.bDouble; // BCAST_WITH_CAST d.getElementDoubleAbs(it.bIndex);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public FloatDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                if (obj instanceof IDataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final IDataset ds = (IDataset) obj;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final int[] oshape = ds.getShape();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException(String.format(<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                                Arrays.toString(siter.getShape())));<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (ds instanceof Dataset) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final Dataset ads = (Dataset) ds;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        data[siter.index] = (float) ads.getElementDoubleAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                final int[] pos = oiter.getPos();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[siter.index] = ds.getFloat(pos); // PRIM_TYPE<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                } else {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                float v = (float) DTypeUtils.toReal(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (siter.hasNext())<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        data[siter.index] = v;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } catch (IllegalArgumentException e) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                return this;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Override<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                float[] ddata = (float[]) dest.getBuffer(); // PRIM_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                dest.setDirty();<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        ddata[diter.index] = data[siter.index];<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        @Override<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                setDirty();<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                float[] sdata = (float[]) src; // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        data[siter.index] = sdata[i];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        private List&lt;int[]&gt; findPositions(final float value) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                IndexIterator iter = getIterator(true);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] pos = iter.getPos();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                if (Float.isNaN(value)) { // CLASS_TYPE // REAL_ONLY<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        while (iter.hasNext()) { // REAL_ONLY<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                if (Double.isNaN(data[iter.index])) { // REAL_ONLY<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        posns.add(pos.clone()); // REAL_ONLY<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                } // REAL_ONLY<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        } // REAL_ONLY<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                } else // REAL_ONLY<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                {<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        while (iter.hasNext()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                if (data[iter.index] == value) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                        posns.add(pos.clone());<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                }<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                return posns;<a name="line.911"></a>
+<span class="sourceLineNo">912</span>        }<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>        @Override<a name="line.914"></a>
+<span class="sourceLineNo">915</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>                if (max == null) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                        max = findPositions(md.getMaximum(ignoreInvalids).floatValue()); // PRIM_TYPE<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>                        md.setMaximumPositions(max);<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                }<a name="line.927"></a>
+<span class="sourceLineNo">928</span><a name="line.928"></a>
+<span class="sourceLineNo">929</span>                return max.get(0); // first maximum<a name="line.929"></a>
+<span class="sourceLineNo">930</span>        }<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>        @Override<a name="line.932"></a>
+<span class="sourceLineNo">933</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>                if (min == null) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                        min = findPositions(md.getMinimum(ignoreInvalids).floatValue()); // PRIM_TYPE<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>                        md.setMinimumPositions(min);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                }<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>                return min.get(0); // first minimum<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span><a name="line.949"></a>
+<span class="sourceLineNo">950</span>        @Override<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        public boolean containsNans() {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                        if (Float.isNaN(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                return true; // REAL_ONLY<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                } // REAL_ONLY<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                return false;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>        }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>        @Override<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        public boolean containsInfs() {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        if (Float.isInfinite(data[iter.index])) // CLASS_TYPE // REAL_ONLY<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                return true; // REAL_ONLY<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                } // REAL_ONLY<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                return false;<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
+<span class="sourceLineNo">969</span><a name="line.969"></a>
+<span class="sourceLineNo">970</span>        @Override<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        public boolean containsInvalidNumbers() {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                IndexIterator iter = getIterator(); // REAL_ONLY<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                while (iter.hasNext()) { // REAL_ONLY<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        float x = data[iter.index]; // PRIM_TYPE // REAL_ONLY<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        if (Float.isNaN(x) || Float.isInfinite(x)) // CLASS_TYPE // REAL_ONLY<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                return true; // REAL_ONLY<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } // REAL_ONLY<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                return false;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>        }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>        @Override<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        public FloatDataset iadd(final Object b) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                setDirty();<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                if (bds.getSize() == 1) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                        final IndexIterator it = getIterator();<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        final int bOffset = bds.getOffset();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                        if (useLong) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                while (it.hasNext()) {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                        data[it.index] += lb;<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                }<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                        } else {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                while (it.hasNext()) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        data[it.index] += db;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                        it.setOutputDouble(!useLong);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                        if (useLong) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                while (it.hasNext()) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                        data[it.aIndex] += it.bLong;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        } else {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        data[it.aIndex] += it.bDouble;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                return this;<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>        @Override<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        public FloatDataset isubtract(final Object b) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                setDirty();<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                if (bds.getSize() == 1) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        final IndexIterator it = getIterator();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        final int bOffset = bds.getOffset();<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        if (useLong) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                while (it.hasNext()) {<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                        data[it.index] -= lb;<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                        } else {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                while (it.hasNext()) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                        data[it.index] -= db;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                        }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                } else {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        if (useLong) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                it.setOutputDouble(false);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                while (it.hasNext()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        } else {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                it.setOutputDouble(true);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        data[it.aIndex] -= it.bDouble;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                return this;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        }<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span><a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        @Override<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        public FloatDataset imultiply(final Object b) {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                setDirty();<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                if (bds.getSize() == 1) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                        final IndexIterator it = getIterator();<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final int bOffset = bds.getOffset();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                        if (useLong) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        data[it.index] *= lb;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        data[it.index] *= db;<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                }<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                } else {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        it.setOutputDouble(!useLong);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        if (useLong) {<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                while (it.hasNext()) {<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                }<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        } else {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                while (it.hasNext()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        data[it.aIndex] *= it.bDouble;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                        }<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                }<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                return this;<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span><a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        @Override<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        public FloatDataset idivide(final Object b) {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                setDirty();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                if (bds.getSize() == 1) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        final int bOffset = bds.getOffset();<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        if (useLong) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                // if (lb == 0) { // INT_USE<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                //      fill(0); // INT_USE<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                // } else { // INT_USE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                final IndexIterator it = getIterator();<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                while (it.hasNext()) {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        data[it.index] /= lb;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                // } // INT_USE<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        } else {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                // if (db == 0) { // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                //      fill(0); // INT_USE<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                // } else { // INT_USE<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                final IndexIterator it = getIterator();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                while (it.hasNext()) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                        data[it.index] /= db;<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                // } // INT_USE<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                        }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                } else {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                        it.setOutputDouble(!useLong);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        if (useLong) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                while (it.hasNext()) {<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                        // if (it.bLong == 0) { // INT_USE<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                        // } else { // INT_USE<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                        // } // INT_USE<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                }<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                        } else {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                while (it.hasNext()) {<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                        // if (it.bDouble == 0) { // INT_USE<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                        // } else { // INT_USE<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        // } // INT_USE<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                }<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        }<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                }<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                return this;<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>        }<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span><a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>        @Override<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        public FloatDataset ifloor() {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                setDirty(); // REAL_ONLY<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                IndexIterator it = getIterator(); // REAL_ONLY<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                while (it.hasNext()) { // REAL_ONLY<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                        data[it.index] = (float) Math.floor(data[it.index]); // PRIM_TYPE // REAL_ONLY // ADD_CAST<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                } // REAL_ONLY<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                return this;<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span><a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>        @Override<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>        public FloatDataset iremainder(final Object b) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                setDirty();<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                if (bds.getSize() == 1) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        final int bOffset = bds.getOffset();<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        if (useLong) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                // if (lb == 0) { // INT_USE<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                //      fill(0); // INT_USE<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                // } else { // INT_USE<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                final IndexIterator it = getIterator();<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        data[it.index] %= lb;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                // } // INT_USE<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                        } else {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                // if (lb == 0) { // INT_USE<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                //      fill(0); // INT_USE<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                // } else { // INT_USE<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                final IndexIterator it = getIterator();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                while (it.hasNext()) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        data[it.index] %= lb;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                // } // INT_USE<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                } else {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        it.setOutputDouble(!useLong);<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                        if (useLong) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                while (it.hasNext()) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                        data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                }<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                        } else {<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                while (it.hasNext()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        data[it.aIndex] %= it.bDouble;<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                        }<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                return this;<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        }<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>        @Override<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>        public FloatDataset ipower(final Object b) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                setDirty();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                if (bds.getSize() == 1) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        final int bOffset = bds.getOffset();<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        final IndexIterator it = getIterator();<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        if (bds.isComplex()) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                if (vi == 0) {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                        while (it.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                                //      data[it.index] = 0; // INT_USE<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                // } else { // INT_USE<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                                data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                                // } // INT_USE<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                        }<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                } else {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                                // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                //      data[it.index] = 0; // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                                // } else { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                // } // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                        }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        } else {// NAN_OMIT<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        //      data[it.index] = 0; // INT_USE<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        // } else { // INT_USE<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        data[it.index] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                        // } // INT_USE<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        }<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                } else {<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        it.setOutputDouble(true);<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        if (bds.isComplex()) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                while (it.hasNext()) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        // } else { // INT_USE<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                        // } // INT_USE<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                        } else {// NAN_OMIT<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                        // if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        //      data[it.aIndex] = 0; // INT_USE<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                        // } else { // INT_USE<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        data[it.aIndex] = (float) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        // } // INT_USE<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                return this;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>        }<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span><a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>        @Override<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                it.setOutputDouble(true);<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                double sum = 0;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                double comp = 0;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                if (ignoreNaNs) { // REAL_ONLY<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (w == null) { // REAL_ONLY<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) { // REAL_ONLY<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        if (Double.isNaN(diff)) // REAL_ONLY<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                                continue; // REAL_ONLY<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                        final double err = diff * diff - comp; // REAL_ONLY<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        final double temp = sum + err; // REAL_ONLY<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        comp = (temp - sum) - err; // REAL_ONLY<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        sum = temp; // REAL_ONLY<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                } // REAL_ONLY<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                        } else { // REAL_ONLY<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                IndexIterator itw = w.getIterator(); // REAL_ONLY<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) { // REAL_ONLY<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                        final double diff = it.aDouble - it.bDouble; // REAL_ONLY<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                        if (Double.isNaN(diff)) // REAL_ONLY<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                                continue; // REAL_ONLY<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp; // REAL_ONLY<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        final double temp = sum + err; // REAL_ONLY<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                        comp = (temp - sum) - err; // REAL_ONLY<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        sum = temp; // REAL_ONLY<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                } // REAL_ONLY<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                        } // REAL_ONLY<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                } else // REAL_ONLY<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        if (w == null) {<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                while (it.hasNext()) {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                        final double err = diff * diff - comp;<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                        final double temp = sum + err;<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        comp = (temp - sum) - err;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        sum = temp;<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                IndexIterator itw = w.getIterator();<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        final double temp = sum + err;<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        comp = (temp - sum) - err;<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                        sum = temp;<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                        }<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                }<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                return sum;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>        }<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>}<a name="line.1314"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDataListener.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDataListener.html
new file mode 100644
index 0000000..f250aa9
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDataListener.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span>package org.eclipse.january.dataset;<a name="line.9"></a>
+<span class="sourceLineNo">010</span><a name="line.10"></a>
+<span class="sourceLineNo">011</span>import java.util.EventListener;<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>/**<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * Listener for data changes. Don't forget to remove it when you no longer need data<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * changes to be updated.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>public interface IDataListener extends EventListener {<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>        /**<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         * Called when data changes value/shape.<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param evt<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        void dataChangePerformed(DataEvent evt);<a name="line.23"></a>
+<span class="sourceLineNo">024</span>}<a name="line.24"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDataset.html
new file mode 100644
index 0000000..0878139
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDataset.html
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.text.Format;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.metadata.IMetadata;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This interface defines the implementation-independent and generic parts of a dataset.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * &lt;p&gt;<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * The position array used in the getters<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public interface IDataset extends ILazyDataset {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * Set string output format<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param format<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public void setStringFormat(Format format);<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @return Size of an item in dataset in bytes<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public int getItemBytes();<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param pos<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @return Item in given position as an object<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public Object getObject(final int... pos);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>        /**<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param pos<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @return Item in given position as a string<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public String getString(final int... pos);<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param pos<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return Item in given position as a double<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public double getDouble(final int... pos);<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @param pos<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @return Item in given position as a long<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public long getLong(final int... pos);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param pos<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @return Item in given position as a float<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public float getFloat(final int... pos);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>        /**<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param pos<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @return Item in given position as an int<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public int getInt(final int... pos);<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @param pos<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @return Item in given position as a short<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        public short getShort(final int... pos);<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param pos<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @return Item in given position as a byte<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public byte getByte(final int... pos);<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param pos<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @return Item in given position as a boolean<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public boolean getBoolean(final int... pos);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>        /**<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * Set the value given by object at given position<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * @param obj<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param pos<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        public void set(final Object obj, final int... pos);<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>        /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * Change shape and size of dataset in-place<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param newShape<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public void resize(int... newShape);<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        @Override<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        public IDataset squeezeEnds();<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Remove dimensions of 1 in shape of the dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public IDataset squeeze();<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Remove dimensions of 1 in shape of the dataset from ends only if true<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * <a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param onlyFromEnds<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public IDataset squeeze(boolean onlyFromEnds);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * @param ignoreInvalids - Can be null, empty, or one or more booleans. By default, all booleans<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * are false. If the first boolean is true, will ignore NaNs and ignore infinities. Use the second<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * boolean to ignore infinities separately.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @return Maximum value<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @throws UnsupportedOperationException if comparisons are not valid<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        public Number max(boolean... ignoreInvalids);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>        /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @param ignoreInvalids - see {@link #max(boolean...)}<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @return mean of all items in dataset as a double, array of doubles or a complex number<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        public Object mean(boolean... ignoreInvalids);<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param ignoreInvalids - see {@link #max(boolean...)}<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @return Minimum value<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @throws UnsupportedOperationException if comparisons are not valid<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public Number min(boolean... ignoreInvalids);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>        /**<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @param ignoreInvalids - see {@link #max(boolean...)}<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * @return Position of minimum value (or first position if there are more than one)<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @since 2.0<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         */<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        public int[] minPos(boolean... ignoreInvalids);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>        /**<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @param ignoreInvalids - see {@link #max(boolean...)}<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * @return Position of maximum value (or first position if there are more than one)<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @since 2.0<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         */<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public int[] maxPos(boolean... ignoreInvalids);<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>        /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * Clone dataset, making new copy of data<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @return a (deep) copy of dataset<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        public IDataset clone();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        /**<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * @deprecated Use {@link #getFirstMetadata(IMetadata.class)} instead<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @return an instance of IMetadata, may be null<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        @Deprecated<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        public IMetadata getMetadata();<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>        @Override<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        public IDataset getSlice(int[] start, int[] stop, int[] step);<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>        @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        public IDataset getSlice(Slice... slice);<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        @Override<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public IDataset getSlice(SliceND slice);<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        <a name="line.179"></a>
+<span class="sourceLineNo">180</span>        /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>         * Get a slice of the dataset. The returned dataset is a view on a selection of items<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * <a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param start<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         *            specifies the starting indexes (can be null for origin)<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @param stop<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         *            specifies the stopping indexes (can be null for end)<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param step<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         *            specifies the steps in the slice (can be null for unit steps)<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * @return The sliced view of a dataset<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         */<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        public IDataset getSliceView(int[] start, int[] stop, int[] step);<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>        /**<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * Get a slice of the dataset. The returned dataset is a view on a selection of items<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * <a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @param slice an array of slice objects (the array can be null or contain nulls)<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * @return The sliced view of a dataset<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         */<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public IDataset getSliceView(Slice... slice);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        /**<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * Get a slice of the dataset. The returned dataset is a view on a selection of items<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * <a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param slice an nD slice object<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return The sliced view of a dataset<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        @Override<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public IDataset getSliceView(SliceND slice);<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>        /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * Permute copy of dataset's axes so that given order is old order:<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * <a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * &lt;pre&gt;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         *  axisPerm = (p(0), p(1),...) =&gt; newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         *  such that n(i) = o(p(i)) for all i<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * &lt;/pre&gt;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * <a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * unchanged.<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * <a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @param axes<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         *            if zero length then axes order reversed<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @return remapped view of data<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         */<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        IDataset getTransposedView(int... axes);<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>        /**<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         * <a name="line.232"></a>
+<span class="sourceLineNo">233</span>         * @return the error dataset, constructing one if necessary<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * @since 2.0<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        public IDataset getErrors();<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>        /**<a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * Get the error for a given position.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         * @param pos<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @return error value (symmetric)<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public double getError(int... pos);<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>        /**<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         * Get the error values for a single point in the dataset<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         * @param pos of the point to be referenced <a name="line.248"></a>
+<span class="sourceLineNo">249</span>         * @return the values of the error at this point (can be null when no error defined)<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         */<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public double[] getErrorArray(int... pos);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>}<a name="line.252"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html
new file mode 100644
index 0000000..db39463
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDatasetChangeChecker.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Interface for a dataset checker to detect change<a name="line.13"></a>
+<span class="sourceLineNo">014</span> */<a name="line.14"></a>
+<span class="sourceLineNo">015</span>public interface IDatasetChangeChecker {<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>        /**<a name="line.17"></a>
+<span class="sourceLineNo">018</span>         * Set dataset to be checked for signs of change. Do any state initialization in here.<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * @param dataset<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        public void setDataset(ILazyDataset dataset);<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * Check for any change. Also update state information.<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @return true if possible change may have occurred<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public boolean check();<a name="line.27"></a>
+<span class="sourceLineNo">028</span>}<a name="line.28"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDatasetConnector.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDatasetConnector.html
new file mode 100644
index 0000000..2c97f13
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDatasetConnector.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.concurrent.TimeUnit;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.eclipse.january.DatasetException;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * A dataset connector contains a lazy dataset which exists in a remote<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * location. It uses a connection to the DataServer to provide the<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * implementation of the slicing required remotely.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * <a name="line.20"></a>
+<span class="sourceLineNo">021</span> * You may also listen to data changing in the dataset<a name="line.21"></a>
+<span class="sourceLineNo">022</span> */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>public interface IDatasetConnector extends IFileConnection, IDynamicShape {<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        /**<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * The dataset location/name in the file<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @return Dataset name<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public String getDatasetName();<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * The dataset location/name in the file<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param datasetName<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public void setDatasetName(String datasetName);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * If set to true the DataServer will not cache the dataset. <a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * If left as false: if the data server can figure out that the <a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * file is writing, it will reshape. However it cannot always <a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * determine this depending on the file and what is writing to <a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * it (SWMR can write without changing date stamp for instance)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * <a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * Setting this boolean ensures that a given path, never will<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * cache on the data server.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * <a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Default value is false for MJPG streams and true for standard<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * remote datasets.<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         *  <a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param expectWrite<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public void setWritingExpected(boolean expectWrite);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @return true if the remote dataset has been warned that writing is expected.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public boolean isWritingExpected();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        <a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Same as calling connect(500, TimeUnit.MILLISECOND)<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * <a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * Cannot will connect with the DataServer to start listening<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * to any updates to the file should it be written in the remote file system.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * When connect it called, the remote file must exist and the dataset properties<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * are read. These properties must not change in the file while you are connected.<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * For instance if the file is ints when you connect, it must not change data class.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * <a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @return the name of the thread started to run the connection or null if each event<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * is driven from the event thread of the service (for instance web sockets provide the<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * thread and this runs the connection)<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * <a name="line.72"></a>
+<span class="sourceLineNo">073</span>         */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public String connect() throws DatasetException;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>        /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * Cannot will connect with the DataServer to start listening<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * to any updates to the file should it be written in the remote file system.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * When connect it called, the remote file must exist and the dataset properties<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * are read. These properties must not change in the file while you are connected.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * For instance if the file is ints when you connect, it must not change data class.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * <a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * @param time<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @param unit<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @return the name of the thread started to run the connection or null if each event<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * is driven from the event thread of the service (for instance web sockets provide the<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * thread and this runs the connection)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public String connect(long time, TimeUnit unit) throws DatasetException;<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>        /**<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * Stops listening to the dataset changing and disconnects from the server.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * A remote dataset may be connected and disconnected multiple times.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public void disconnect() throws DatasetException;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>}<a name="line.96"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDynamicDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDynamicDataset.html
new file mode 100644
index 0000000..b78d9e5
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDynamicDataset.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>/**<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * This interface is intended for data sources that change dynamically.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Examples:<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * 1. An image stream from a camera encoded which entire image, changes periodically.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * 2. An HDF5 dataset which entire shape changes as data is added.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> *  <a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public interface IDynamicDataset extends ILazyDataset, IDynamicShape {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Denotes an unlimited dimension in maximum shape<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        public static final int UNLIMITED = IDynamicShape.UNLIMITED;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>}<a name="line.26"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDynamicShape.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDynamicShape.html
new file mode 100644
index 0000000..83fe7f1
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IDynamicShape.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * This interface is intended for data sources that change shape dynamically.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * Examples:<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * 1. An image stream from a camera encoded which entire image, changes periodically.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * 2. An HDF5 dataset which entire shape changes as data is added.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> *  <a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface IDynamicShape {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * Denotes an unlimited dimension in maximum shape<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        public static final int UNLIMITED = -1;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @return dataset associated with shape<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public ILazyDataset getDataset();<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * Change shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param newShape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @throws IllegalArgumentException if new shape exceeds maximum shape or is of different rank<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @throws UnsupportedOperationException if used on a view<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return true if shape has changed<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public boolean resize(int... newShape);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @return maximum shape (can be null)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public int[] getMaxShape();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Set maximum shape<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param maxShape maximum shape<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public void setMaxShape(int... maxShape);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Starts a periodic checker to see if dataset has changed in some manner. If any potential changes<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * are detected after the period has finished then registered listeners are alerted.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * A period of 0 or less will stop any existing checker.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * <a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @param milliseconds period between checks in milliseconds<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param checker can be null for default implementation of alerting listeners unconditionally<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public void startUpdateChecker(int milliseconds, IDatasetChangeChecker checker);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>        /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * Force the shape to be re-read from file, if possible<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @return true if shape has changed<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public boolean refreshShape();<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Add a listener which will be fired when aspects of the data change for<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * instance shape or content.<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param l<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public void addDataListener(IDataListener l);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        <a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Remove a listener which will be fired when aspects of the data change for<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * instance shape or content.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param l<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        public void removeDataListener(IDataListener l);<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>        /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * Alert any registered listeners<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        public void fireDataListeners();<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>        /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * Add a listener which will be fired when aspects of the meta data change for<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * instance origin of data<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param l<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        // TODO Add this when required.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        //public void addMetadataListener(IMetadataListener l);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        <a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * Remove a listener which will be fired when aspects of the meta data change for<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * instance origin of data<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param l<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        // TODO Add this when required.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        //public void removeDataListener(IMetadataListener l);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>}<a name="line.103"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IFileConnection.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IFileConnection.html
new file mode 100644
index 0000000..2464be9
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IFileConnection.html
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>public interface IFileConnection {<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>        /**<a name="line.14"></a>
+<span class="sourceLineNo">015</span>         * DataServer path, a local path on the server used to locate the remote dataset.<a name="line.15"></a>
+<span class="sourceLineNo">016</span>         * @return the file path to the data in the file system of the remote machine<a name="line.16"></a>
+<span class="sourceLineNo">017</span>         */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        public String getPath();<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        <a name="line.19"></a>
+<span class="sourceLineNo">020</span>        /**<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * DataServer path, a local path on the server used to locate the remote dataset.<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This path may also be a directory where the data collection will happen. In this<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * case when the first file is written, the dataset must be made up of files with the<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * same extension.<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * <a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param path to the data in the file system of the remote machine<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public void setPath(String path);<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>}<a name="line.30"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ILazyDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ILazyDataset.html
new file mode 100644
index 0000000..62fd6f8
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ILazyDataset.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.DatasetException;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.IMonitor;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.INameable;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.metadata.MetadataType;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * This interface defines the lazy parts of a dataset. A dataset is a N-dimensional array of items<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * where N can be zero to represent a zero-rank or single-valued dataset. A zero-rank dataset has<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * an empty array for shape. An item comprises a number of elements.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public interface ILazyDataset extends Serializable, IMetadataProvider, INameable {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                <a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return Boxed class of element<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public Class&lt;?&gt; getElementClass();<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return Number of elements per item<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public int getElementsPerItem();<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * The size of the dataset is the number of items in the array<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * <a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @return number of data items<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public int getSize();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * The shape (or array of lengths for each dimension) of the dataset can be empty for zero-rank<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * datasets<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * <a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @return Copy of shape of dataset<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public int[] getShape();<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Set a compatible shape for dataset. A shape is compatible if it has the capacity to contain<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * the same number of items<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param shape<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public void setShape(final int... shape);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>        /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * The rank (or number of dimensions/indices) of the dataset can be zero for a zero-rank<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * (single-valued) dataset <a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @return rank<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public int getRank();<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * Remove dimensions of 1 from ends of shape of the dataset<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public ILazyDataset squeezeEnds();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>        /**<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * <a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param start<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         *            specifies the starting indexes (can be null for origin)<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param stop<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         *            specifies the stopping indexes (can be null for end)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param step<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         *            specifies the steps in the slice (can be null for unit steps)<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * @return The dataset of the sliced data<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @throws DatasetException<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public IDataset getSlice(final int[] start, final int[] stop, final int[] step) throws DatasetException;<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * <a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param monitor<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @param start<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         *            specifies the starting indexes (can be null for origin)<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param stop<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         *            specifies the stopping indexes (can be null for end)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param step<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         *            specifies the steps in the slice (can be null for unit steps)<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @return The dataset of the sliced data<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @throws DatasetException<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public IDataset getSlice(final IMonitor monitor, final int[] start, final int[] stop,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        final int[] step) throws DatasetException;<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * <a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @param slice an array of slice objects (the array can be null or contain nulls)<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @return The dataset of the sliced data<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @throws DatasetException<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        public IDataset getSlice(final Slice... slice) throws DatasetException;<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>        /**<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * <a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param monitor<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param slice an array of slice objects (the array can be null or contain nulls)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @return The dataset of the sliced data<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @throws DatasetException<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        public IDataset getSlice(final IMonitor monitor, final Slice... slice) throws DatasetException;<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>        /**<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * <a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * @param slice an n-D slice<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @return The dataset of the sliced data<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @throws DatasetException<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public IDataset getSlice(final SliceND slice) throws DatasetException;<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>        /**<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * Get a slice of the dataset. The returned dataset is a copied selection of items<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * <a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param monitor<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param slice an n-D slice<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @return The dataset of the sliced data<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @throws DatasetException<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        public IDataset getSlice(final IMonitor monitor, final SliceND slice) throws DatasetException;<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * Get a slice of the dataset. The returned lazy dataset is a view on a selection of items<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * <a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @param start<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         *            specifies the starting indexes (can be null for origin)<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param stop<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         *            specifies the stopping indexes (can be null for end)<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @param step<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         *            specifies the steps in the slice (can be null for unit steps)<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @return The sliced view of a lazy dataset <a name="line.151"></a>
+<span class="sourceLineNo">152</span>         */<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        public ILazyDataset getSliceView(final int[] start, final int[] stop, final int[] step);<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>        /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * Get a slice of the dataset. The returned lazy dataset is a view on a selection of items<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * <a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * @param slice an array of slice objects (the array can be null or contain nulls)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * @return The sliced view of a lazy dataset<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         */<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        public ILazyDataset getSliceView(final Slice... slice);<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>        /**<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * Get a slice of the dataset. The returned lazy dataset is a view on a selection of items<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * <a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @param slice an n-D slice<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * @return The sliced view of a lazy dataset<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         */<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        public ILazyDataset getSliceView(final SliceND slice);<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>        /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * Permute copy of dataset's axes so that given order is old order:<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * <a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * &lt;pre&gt;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         *  axisPerm = (p(0), p(1),...) =&gt; newdata(n(0), n(1),...) = olddata(o(0), o(1), ...)<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         *  such that n(i) = o(p(i)) for all i<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         * &lt;/pre&gt;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         * <a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * I.e. for a 3D dataset (1,0,2) implies the new dataset has its 1st dimension running along<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * the old dataset's 2nd dimension and the new 2nd is the old 1st. The 3rd dimension is left<a name="line.180"></a>
+<span class="sourceLineNo">181</span>         * unchanged.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * <a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param axes<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         *            if zero length then axes order reversed<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @return remapped view of data<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public ILazyDataset getTransposedView(int... axes);<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Add metadata to the dataset<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * <a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param metadata<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        public void addMetadata(final MetadataType metadata);<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>        /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * Set metadata on the dataset<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         * <a name="line.198"></a>
+<span class="sourceLineNo">199</span>         * @param metadata (null is ignored so use clear(null) instead)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public void setMetadata(MetadataType metadata);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        /**<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * Remove metadata of given class<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param clazz if null remove everything<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        public void clearMetadata(Class&lt;? extends MetadataType&gt; clazz);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>        /**<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * Clone dataset<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @return a (shallow) copy of dataset<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        public ILazyDataset clone();<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * Set the errors. It may be a single double, a double array or a<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * whole dataset that can broadcast to the dataset<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * <a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param errors - may be null to remove the error set<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @throws RuntimeException if the rank or shape are incorrect<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * @since 2.0<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         */<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        public void setErrors(Serializable errors);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>        /**<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * Get the errors, if any. These will be in a shape that can broadcast to the dataset<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @since 2.0<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        public ILazyDataset getErrors();<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>        /**<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         * If error information is set, returns true.<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         * Faster to call than getError() which constructs a<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * new dataset.<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * <a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * @return true if there is error data.<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public boolean hasErrors();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>}<a name="line.239"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html
new file mode 100644
index 0000000..c432c95
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ILazyWriteableDataset.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import org.eclipse.january.DatasetException;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import org.eclipse.january.IMonitor;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.eclipse.january.io.ILazySaver;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * This sub-interface adds the ability to write to a lazy dataset slice-by-slice<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface ILazyWriteableDataset extends IDynamicDataset {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * See {@link IDynamicDataset#UNLIMITED}<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        public static final int UNLIMITED = IDynamicDataset.UNLIMITED;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * Get chunking<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @return chunks (can be null)<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public int[] getChunking();<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * Set chunking<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param chunks chunk shape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public void setChunking(int... chunks);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * Set saver<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param saver<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public void setSaver(ILazySaver saver);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Set a slice of the dataset<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * <a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param monitor<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param data<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param slice an n-D slice<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @throws DatasetException<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public void setSlice(final IMonitor monitor, final IDataset data, final SliceND slice) throws DatasetException;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Set a slice of the dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * <a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @param monitor<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param data<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param start<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         *            specifies the starting indexes (can be null for origin)<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param stop<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         *            specifies the stopping indexes (can be null for end)<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param step<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         *            specifies the steps in the slice (can be null for unit steps)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @throws DatasetException<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public void setSlice(final IMonitor monitor, final IDataset data, final int[] start, final int[] stop, final int[] step) throws DatasetException;<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * Set a slice of the dataset synchronously<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * <a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param monitor<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @param data<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @param slice an n-D slice<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @throws DatasetException<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        public void setSliceSync(final IMonitor monitor, final IDataset data, final SliceND slice) throws DatasetException;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * Set writing slices as asynchronous<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param async<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public void setWritingAsync(boolean async);<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * Get the value used to fill an un-initialized dataset<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @return fill value<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public Object getFillValue();<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>        /**<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * Set the value used to fill an un-initialized dataset<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * @param fill<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public void setFillValue(Object fill);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>}<a name="line.96"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IMetadataProvider.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IMetadataProvider.html
new file mode 100644
index 0000000..336140d
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IMetadataProvider.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.List;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.MetadataException;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.metadata.IMetadata;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.metadata.MetadataType;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Interface which acts to provide metadata from an object<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public interface IMetadataProvider {<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @deprecated Use {@link #getFirstMetadata(IMetadata.class)} instead<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @return an instance of IMetadata<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @throws Exception<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        @Deprecated<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public IMetadata getMetadata() throws Exception;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param clazz if null return everything<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @return list of metadata with given class (or its super interface)<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @throws MetadataException<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public &lt;S extends MetadataType, T extends S&gt; List&lt;S&gt; getMetadata(Class&lt;T&gt; clazz) throws MetadataException;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param clazz if null return first from everything<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @return first element from list of metadata with given class (or its super interface)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        public &lt;S extends MetadataType, T extends S&gt; S getFirstMetadata(Class&lt;T&gt; clazz);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>}<a name="line.46"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IOperation.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IOperation.html
new file mode 100644
index 0000000..59a7730
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IOperation.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Marker interface for all operations<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface IOperation {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>}<a name="line.21"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IRemoteData.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IRemoteData.html
new file mode 100644
index 0000000..2279295
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IRemoteData.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span>package org.eclipse.january.dataset;<a name="line.9"></a>
+<span class="sourceLineNo">010</span><a name="line.10"></a>
+<span class="sourceLineNo">011</span>import java.util.Map;<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>/**<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * This class provides access to remote data which<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * may consist of more than one remote dataset. It<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * provides meta information about the contents of<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * the remote data which can be used to determine<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * which remote dataset to open. It provides a convenience<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * method for creating a remote dataset which must<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * be connected when it is returned but must be disconnected<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * or its parent IRemoteData disconnected at some point<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * later to close the connection with the server.<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public interface IRemoteData extends IFileConnection {<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * Map of path to collection of attributes at that path.<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @return NeXus meta-data objects in most instances.<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @throws Exception<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public Map&lt;String, Object&gt; getTree()  throws Exception;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        <a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * Create a remote dataset looking at the dataset path named.<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * connect() before use and disconnect() after use must be performed.<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * <a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @param datasetPath<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @return IRemoteDataset<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @throws Exception<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public IDatasetConnector createRemoteDataset(String datasetPath) throws Exception;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>}<a name="line.42"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IndexIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IndexIterator.html
new file mode 100644
index 0000000..c77af42
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IndexIterator.html
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * &lt;p&gt;Class to provide iteration through whole data array that backs a dataset&lt;/p&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * &lt;p&gt;Instantiate an iterator and use it in a while loop:<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * &lt;pre&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> *  DoubleDataset ds = DatasetFactory.createLinearSpace(DoubleDataset.class, 0, 10, 0.25);<a name="line.19"></a>
+<span class="sourceLineNo">020</span> *  IndexIterator iter = ds.getIterator();<a name="line.20"></a>
+<span class="sourceLineNo">021</span> *  double[] data = ds.getData();<a name="line.21"></a>
+<span class="sourceLineNo">022</span> *  <a name="line.22"></a>
+<span class="sourceLineNo">023</span> *  while (iter.hasNext()) {<a name="line.23"></a>
+<span class="sourceLineNo">024</span> *      data[iter.index] = 1.2;<a name="line.24"></a>
+<span class="sourceLineNo">025</span> *  }<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * &lt;/pre&gt;<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * <a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public abstract class IndexIterator {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Index in array<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public int index;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        /**<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @return true if there is another iteration<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         */<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        abstract public boolean hasNext();<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @return position indices (nb this is reference not a copy so avoid changing and can be null)<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        abstract public int[] getPos();<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * Reset iterator<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>        abstract public void reset();<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return shape of iterator (can be null, if not known or applicable)<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public int[] getShape() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                return null;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        }<a name="line.55"></a>
+<span class="sourceLineNo">056</span>}<a name="line.56"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegerDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegerDataset.html
new file mode 100644
index 0000000..6081bb3
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegerDataset.html
@@ -0,0 +1,1338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for int values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class IntegerDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected int[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (int[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static int[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                int[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new int[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT32; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        IntegerDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        IntegerDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        IntegerDataset(final int[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        IntegerDataset(final IntegerDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        IntegerDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (int) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (!super.equals(obj)) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                IntegerDataset other = (IntegerDataset) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//              if (size == 1) // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator iter = getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                IndexIterator oiter = other.getIterator();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                return false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return true;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int hashCode() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return super.hashCode();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public IntegerDataset clone() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return new IntegerDataset(this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * sequences or arrays are padded with zeros.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param obj<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return dataset with contents given by input<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static IntegerDataset createFromObject(final Object obj) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                IntegerDataset result = new IntegerDataset();<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (obj != null) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                result.odata = result.data = createArray(result.size);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } catch (Throwable t) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                throw new IllegalArgumentException(t);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] pos = new int[result.shape.length];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        result.fillData(obj, 0, pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return result;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param stop<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        static IntegerDataset createRange(final double stop) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return createRange(0, stop, 1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        <a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param start<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param stop<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param step<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        static IntegerDataset createRange(final double start, final double stop, final double step) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int size = calcSteps(start, stop, step);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                IntegerDataset result = new IntegerDataset(size);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                for (int i = 0; i &lt; size; i++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        result.data[i] = (int) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param shape<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return a dataset filled with ones<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        static IntegerDataset ones(final int... shape) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return new IntegerDataset(shape).fill(1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public IntegerDataset fill(final Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                setDirty();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                IndexIterator iter = getIterator();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                while (iter.hasNext()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        data[iter.index] = dv;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return this;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * This is a typed version of {@link #getBuffer()}<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return data buffer as linear array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public int[] getData() { // PRIM_TYPE<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return data;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        @Override<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        protected int getBufferLength() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (data == null)<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return data.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public IntegerDataset getView(boolean deepCopyMetadata) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                IntegerDataset view = new IntegerDataset();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                view.setData();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return view;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param index<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            absolute index<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return value<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         */<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public int getAbs(final int index) { // PRIM_TYPE<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return data[index];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public double getElementDoubleAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index]; // BOOLEAN_ZERO<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public long getElementLongAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public Object getObjectAbs(final int index) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return data[index];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public String getStringAbs(final int index) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        stringFormat.format(data[index]);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param index<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            absolute index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param val<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         *            new value<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public void setAbs(final int index, final int val) { // PRIM_TYPE<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                setDirty();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                data[index] = val;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                setDirty();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                int[] dsrc = (int[]) src; // PRIM_TYPE<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                data[dindex] = dsrc[sindex];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>                setAbs(index, (int) DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in first position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @since 2.0<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public int get() { // PRIM_TYPE<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return data[getFirst1DIndex()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param i<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in given position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public int get(final int i) { // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return data[get1DIndex(i)];<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @param i<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param j<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public int get(final int i, final int j) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return data[get1DIndex(i, j)];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param pos<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public int get(final int... pos) { // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return data[get1DIndex(pos)];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Integer.valueOf(get()); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int i) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Integer.valueOf(get(i)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public Object getObject(final int i, final int j) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return Integer.valueOf(get(i, j)); // CLASS_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public Object getObject(final int... pos) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return Integer.valueOf(get(pos)); // CLASS_TYPE<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString() {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(getFirst1DIndex());<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int i) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(i));<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public String getString(final int i, final int j) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return getStringAbs(get1DIndex(i, j));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public String getString(final int... pos) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return getStringAbs(get1DIndex(pos));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get(); // BOOLEAN_ZERO<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int i) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get(i); // BOOLEAN_ZERO<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double getDouble(final int i, final int j) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return get(i, j); // BOOLEAN_ZERO<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public double getDouble(final int... pos) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return get(pos); // BOOLEAN_ZERO<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>        @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public float getFloat() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int i) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public float getFloat(final int i, final int j) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public float getFloat(final int... pos) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int i) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public long getLong(final int i, final int j) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public long getLong(final int... pos) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt() {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int i) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int getInt(final int i, final int j) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public int getInt(final int... pos) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int i) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getShort(final int i, final int j) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public short getShort(final int... pos) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int i) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public byte getByte(final int i, final int j) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public byte getByte(final int... pos) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public boolean getBoolean(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return get(i, j) != 0; // BOOLEAN_FALSE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public boolean getBoolean(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return get(pos) != 0; // BOOLEAN_FALSE<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @since 2.0<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final int value) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(getFirst1DIndex(), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void setItem(final int value, final int i) { // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setAbs(get1DIndex(i), value);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         *<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param value<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param i<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param j<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final int value, final int i, final int j) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(i, j), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * Sets the value at a particular point to the passed value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         *<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @param value<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param pos<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void setItem(final int value, final int... pos) { // PRIM_TYPE<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setAbs(get1DIndex(pos), value);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem((int) DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, final int i) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                setItem((int) DTypeUtils.toLong(obj), i); // FROM_OBJECT<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        @Override<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void set(final Object obj, final int i, final int j) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                setItem((int) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public void set(final Object obj, int... pos) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        pos = new int[shape.length];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                setItem((int) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public void resize(int... newShape) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                setDirty();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final IndexIterator iter = getIterator();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                final int[] ndata; // PRIM_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                try {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ndata = createArray(nsize);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } catch (Throwable t) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        throw new IllegalArgumentException(t);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        ndata[i] = data[iter.index];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span>                odata = data = ndata;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                size = nsize;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                shape = newShape;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                stride = null;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                offset = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                base = null;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        @Override<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public IntegerDataset sort(Integer axis) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                setDirty();<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (axis == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        if (stride == null) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                Arrays.sort(data);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        } else {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                IntegerDataset ads = clone().sort(null);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                setSlicedView(getView(false), ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                } else {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        axis = checkAxis(axis);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        <a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        IntegerDataset ads = new IntegerDataset(shape[axis]);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        int[] pos = pi.getPos();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        boolean[] hit = pi.getOmit();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        while (pi.hasNext()) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                Arrays.sort(ads.data);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                return this;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public IntegerDataset getUniqueItems() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                Set&lt;Integer&gt; set = new TreeSet&lt;Integer&gt;(); // CLASS_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                IndexIterator it = getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        set.add(data[it.index]);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                IntegerDataset u = new IntegerDataset(set.size()); // CLASS_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                int[] udata = u.getData(); // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                for (Integer v : set) { // CLASS_TYPE<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        udata[i++] = v;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return u;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>        @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        public IntegerDataset getSlice(final SliceIterator siter) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                IntegerDataset result = new IntegerDataset(siter.getShape());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                int[] rdata = result.data; // PRIM_TYPE<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        rdata[i] = data[siter.index];<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                result.setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                int[] rdata = ((IntegerDataset) result).data; // PRIM_TYPE<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        rdata[riter.index] = data[iter.index];<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public IntegerDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                setDirty();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (obj instanceof Dataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final Dataset ds = (Dataset) obj;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (length != ds.getSize()) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                throw new IllegalArgumentException(<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[biter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (biter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[biter.index] = dv;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                return this;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        public IntegerDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                if (obj instanceof Dataset) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        final Dataset ds = (Dataset) obj;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        if (index.getSize() != ds.getSize()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                throw new IllegalArgumentException(<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                data[iter.index] = (int) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        while (iter.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                data[iter.index] = dv;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return this;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public IntegerDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                setDirty();<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final int[] pos = iter.getPos();<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                if (obj instanceof Dataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        final Dataset ds = (Dataset) obj;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                throw new IllegalArgumentException(<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                setItem((int) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final int dv = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        while (iter.hasNext()) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                setItem(dv, pos);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return this;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        IntegerDataset setSlicedView(Dataset view, Dataset d) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                setDirty();<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        data[it.aIndex] = (int) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public IntegerDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                if (obj instanceof IDataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final IDataset ds = (IDataset) obj;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final int[] oshape = ds.getShape();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException(String.format(<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                                Arrays.toString(siter.getShape())));<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (ds instanceof Dataset) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final Dataset ads = (Dataset) ds;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        data[siter.index] = (int) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                final int[] pos = oiter.getPos();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[siter.index] = ds.getInt(pos); // PRIM_TYPE<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                } else {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                int v = (int) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (siter.hasNext())<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        data[siter.index] = v;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } catch (IllegalArgumentException e) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                return this;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Override<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                int[] ddata = (int[]) dest.getBuffer(); // PRIM_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                dest.setDirty();<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        ddata[diter.index] = data[siter.index];<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        @Override<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                setDirty();<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                int[] sdata = (int[]) src; // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        data[siter.index] = sdata[i];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        private List&lt;int[]&gt; findPositions(final int value) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                IndexIterator iter = getIterator(true);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] pos = iter.getPos();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        while (iter.hasNext()) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                if (data[iter.index] == value) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        posns.add(pos.clone());<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                return posns;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>        @Override<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>                if (max == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        max = findPositions(md.getMaximum(ignoreInvalids).intValue()); // PRIM_TYPE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        md.setMaximumPositions(max);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return max.get(0); // first maximum<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        @Override<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>                if (min == null) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        min = findPositions(md.getMinimum(ignoreInvalids).intValue()); // PRIM_TYPE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span><a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        md.setMinimumPositions(min);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return min.get(0); // first minimum<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>        @Override<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        public boolean containsNans() {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                return false;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public boolean containsInfs() {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                return false;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>        @Override<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        public boolean containsInvalidNumbers() {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                return false;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>        @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        public IntegerDataset iadd(final Object b) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setDirty();<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                if (bds.getSize() == 1) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        final IndexIterator it = getIterator();<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        final int bOffset = bds.getOffset();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        if (useLong) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                while (it.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        data[it.index] += lb;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        } else {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                while (it.hasNext()) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        data[it.index] += db;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } else {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        it.setOutputDouble(!useLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (useLong) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                while (it.hasNext()) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        data[it.aIndex] += it.bLong;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        } else {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                while (it.hasNext()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        data[it.aIndex] += it.bDouble;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        }<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return this;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        @Override<a name="line.993"></a>
+<span class="sourceLineNo">994</span>        public IntegerDataset isubtract(final Object b) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                setDirty();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                if (bds.getSize() == 1) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        final IndexIterator it = getIterator();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        final int bOffset = bds.getOffset();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        if (useLong) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                while (it.hasNext()) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        data[it.index] -= lb;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        } else {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        data[it.index] -= db;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                } else {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        if (useLong) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                it.setOutputDouble(false);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                while (it.hasNext()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        } else {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                it.setOutputDouble(true);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                while (it.hasNext()) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        data[it.aIndex] -= it.bDouble;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return this;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        @Override<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>        public IntegerDataset imultiply(final Object b) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                setDirty();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (bds.getSize() == 1) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        final IndexIterator it = getIterator();<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        final int bOffset = bds.getOffset();<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        if (useLong) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                while (it.hasNext()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        data[it.index] *= lb;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        } else {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        data[it.index] *= db;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                } else {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        it.setOutputDouble(!useLong);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        if (useLong) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        } else {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                while (it.hasNext()) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                        data[it.aIndex] *= it.bDouble;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                }<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        }<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                return this;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public IntegerDataset idivide(final Object b) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                if (bds.getSize() == 1) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        final int bOffset = bds.getOffset();<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        if (useLong) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                if (lb == 0) { // INT_USE<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                        fill(0); // INT_USE<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } else { // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                final IndexIterator it = getIterator();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        data[it.index] /= lb;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        } else {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                if (db == 0) { // INT_USE<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        fill(0); // INT_USE<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } else { // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                final IndexIterator it = getIterator();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        data[it.index] /= db;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                } // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        }<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                } else {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        it.setOutputDouble(!useLong);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        if (useLong) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                while (it.hasNext()) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                        } else { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        } // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        } else {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                while (it.hasNext()) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        } else { // INT_USE<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                        } // INT_USE<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                return this;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span><a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        @Override<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        public IntegerDataset ifloor() {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                return this;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>        }<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        @Override<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        public IntegerDataset iremainder(final Object b) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                setDirty();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                if (bds.getSize() == 1) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        final int bOffset = bds.getOffset();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        if (useLong) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                if (lb == 0) { // INT_USE<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        fill(0); // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                } else { // INT_USE<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final IndexIterator it = getIterator();<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                while (it.hasNext()) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        data[it.index] %= lb;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                } // INT_USE<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        } else {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                if (lb == 0) { // INT_USE<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        fill(0); // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                } else { // INT_USE<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                final IndexIterator it = getIterator();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                while (it.hasNext()) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        data[it.index] %= lb;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                } // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                } else {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        it.setOutputDouble(!useLong);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        if (useLong) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                while (it.hasNext()) {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                } catch (ArithmeticException e) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        data[it.aIndex] = 0;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                while (it.hasNext()) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        data[it.aIndex] %= it.bDouble;<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                return this;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span><a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        @Override<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        public IntegerDataset ipower(final Object b) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                if (bds.getSize() == 1) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        final int bOffset = bds.getOffset();<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        final IndexIterator it = getIterator();<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (bds.isComplex()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                if (vi == 0) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                        while (it.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                                } else { // INT_USE<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                                data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                                } // INT_USE<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                } else {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                        while (it.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                                } else { // INT_USE<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                                } // INT_USE<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        } else {// NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                while (it.hasNext()) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                                data[it.index] = 0; // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        } else { // INT_USE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        data[it.index] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        } // INT_USE<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                }<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                } else {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        it.setOutputDouble(true);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (bds.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        } else { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        } else {// NAN_OMIT<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (it.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        } else { // INT_USE<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        data[it.aIndex] = (int) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        } // INT_USE<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                }<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                }<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                return this;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span><a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>        @Override<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                it.setOutputDouble(true);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                double sum = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                double comp = 0;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        if (w == null) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                while (it.hasNext()) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        final double err = diff * diff - comp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                        final double temp = sum + err;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                        comp = (temp - sum) - err;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        sum = temp;<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        } else {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                IndexIterator itw = w.getIterator();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        final double temp = sum + err;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                        comp = (temp - sum) - err;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        sum = temp;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                }<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                return sum;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>}<a name="line.1266"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegerIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegerIterator.html
new file mode 100644
index 0000000..73b0207
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegerIterator.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over an integer dataset and return its items<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class IntegerIterator extends IndexIterator {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        final private IntegerDataset indices;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        final private IndexIterator iter;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        final private int istep; // step over items<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int imax; // maximum index in array<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * Constructor for an iterator over the items of an integer dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         *<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param index integer dataset<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param length of entire data array<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public IntegerIterator(final Dataset index, final int length) {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                this(index, length, 1);<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        }<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * Constructor for an iterator over the items of an integer dataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * <a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @param index integer dataset<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param length of entire data array<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param isize number of elements in an item<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public IntegerIterator(final Dataset index, final int length, final int isize) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                indices = (IntegerDataset) (index instanceof IntegerDataset ? index : DatasetUtils.convertToDataset(index).cast(Dataset.INT32));<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                iter = index.getIterator();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                istep = isize;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                imax = length*istep;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public boolean hasNext() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                while (iter.hasNext()) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        index = istep*indices.getAbs(iter.index);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        if (index &lt; 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                                index += imax;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        return true;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return false;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        @Override<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        public int[] getPos() {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                return null;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public void reset() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                iter.reset();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>}<a name="line.69"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegersIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegersIterator.html
new file mode 100644
index 0000000..ab8f240
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/IntegersIterator.html
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Arrays;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.List;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Class to run over an array of integer datasets and return its items<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class IntegersIterator extends IndexIterator {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        final private int[] ishape; // shape of input<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        final private int irank; // rank of input shape<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int[] oshape; // shape of output<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        final private int orank; // rank of output shape<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int offset; // offset of index subspace in new position <a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private int srank; // rank of subspace<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        final private IndexIterator it;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * position in input shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        final private int[] ipos;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * position in output shape<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        final private int[] opos;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        final private List&lt;Object&gt; indexes;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Constructor for an iterator over the items of an array of objects<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param shape of entire data array<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param index an array of integer dataset, boolean dataset, slices or null entries (same as full slices)<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public IntegersIterator(final int[] shape, final Object... index) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                this(false, shape, index);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>        /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * Constructor for an iterator over the items of an array of objects<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @param restrict1D if true, allow only one 1D integer datasets otherwise they must match shape<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param shape of entire data array<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param index an array of integer dataset, boolean dataset, slices or null entries (same as full slices)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public IntegersIterator(final boolean restrict1D, final int[] shape, final Object... index) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                ishape = shape.clone();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                irank = shape.length;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                if (irank &lt; index.length) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        throw new IllegalArgumentException("Number of index datasets is greater than rank of dataset");<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                indexes = new ArrayList&lt;Object&gt;();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                for (Object i : index) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        if (i instanceof BooleanDataset) { // turn boolean datasets into integer ones<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                for (IntegerDataset id : Comparisons.nonZero((Dataset) i)) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                        indexes.add(id);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        } else if (i == null || i instanceof Slice) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                                indexes.add(i);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        } else if (i instanceof IntegerDataset) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                Dataset id = (Dataset) i;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                int r = id.getRank();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                if (restrict1D &amp;&amp; r &gt; 1) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                        throw new IllegalArgumentException("Integer datasets were restricted to zero or one dimensions");<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                if (r == 0) { // avoid zero-rank datasets<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        i = id.reshape(1);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                indexes.add(i);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                throw new IllegalArgumentException("Unsupported object for indexing");<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                if (indexes.size() &lt; irank) { // pad out index list<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        for (int i = indexes.size(); i &lt; irank; i++) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                indexes.add(null);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                } else if (indexes.size() &gt; irank) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        throw new IllegalArgumentException("Too many indices (a boolean dataset may have too many dimensions)");<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>                int ilength = -1;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                int[] cshape = null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                int first = -1; // index of first null or slice after non-null index<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                boolean intact = true;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                srank = 0;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                for (int i = 0; i &lt; irank; i++) { // see if shapes are consistent and subspace is intact<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        Object obj = indexes.get(i);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        if (obj instanceof IntegerDataset &amp;&amp; !restrict1D) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                if (first &gt; 0) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                        intact = false;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                int l = ind.size;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                                if (ilength &lt; l) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                                        ilength = l;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                        cshape = null;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                                } else if (l != 1 &amp;&amp; l != ilength) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                                        throw new IllegalArgumentException("Index datasets do not have same size");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                if (cshape == null) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        cshape = ind.shape;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                        srank = cshape.length;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        offset = i;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                } else if (l &gt; 1 &amp;&amp; !Arrays.equals(ind.shape, cshape)) { // broadcast<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                        throw new IllegalArgumentException("Index datasets do not have same shape");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                if (cshape != null) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                        if (first &lt; 0)<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                                first = i;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>                List&lt;Integer&gt; oShape = new ArrayList&lt;Integer&gt;(irank);<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>                if (intact) { // get new output shape list<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        boolean used = false;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        for (int i = 0; i &lt; irank; i++) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                Object obj = indexes.get(i);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                if (obj instanceof IntegerDataset) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                        if (restrict1D || !used) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                                used = true;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                                int[] lshape = restrict1D ? ((IntegerDataset) obj).shape : cshape;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                                                for (int j : lshape) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                                                        oShape.add(j);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                                                }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                } else if (obj instanceof Slice) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                        Slice s = (Slice) obj;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                        int l = ishape[i];<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                        s.setLength(l);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                        oShape.add(s.getNumSteps());<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                } else {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        oShape.add(ishape[i]);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        assert cshape != null;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        for (int j : cshape) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                oShape.add(j);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        for (int i = 0; i &lt; irank; i++) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                Object obj = indexes.get(i);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                if (obj == null) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                        oShape.add(ishape[i]);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                } else if (obj instanceof Slice) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                        Slice s = (Slice) obj;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                                        int l = ishape[i];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                                        s.setLength(l);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                        oShape.add(s.getNumSteps());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                orank = oShape.size();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                oshape = new int[orank];<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                for (int i = 0; i &lt; orank; i++) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        oshape[i] = oShape.get(i);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                }<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>                for (int i = 0; i &lt; irank; i++) { // check input indexes for out of bounds<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        Object obj = indexes.get(i);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        if (obj instanceof IntegerDataset) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                if (ind.getSize() &gt; 0) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        int l = ishape[i];<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                        if (ind.min().intValue() &lt; -l || ind.max().intValue() &gt;= l) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                                throw new IllegalArgumentException("A value in index datasets is outside permitted range");<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>                ipos = new int[irank];<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                it = new PositionIterator(oshape);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                opos = it.getPos();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        public int[] getShape() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                return oshape;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>        @Override<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public boolean hasNext() {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (it.hasNext()) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        int i = 0;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        for (; i &lt; offset; i++) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                Object obj = indexes.get(i);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                if (obj == null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                        ipos[i] = opos[i];<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                } else if (obj instanceof Slice) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                        Slice s = (Slice) obj;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        ipos[i] = s.getPosition(opos[i]); // overwrite position<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                } else {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                        throw new IllegalStateException("Bad state: index dataset before offset");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        int[] spos = srank &gt; 0 ? Arrays.copyOfRange(opos, i, i+srank) : opos;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        if (spos == opos) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                for (; i &lt; irank; i++) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                        Object obj = indexes.get(i);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                        if (obj == null) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                                ipos[i] = opos[i];<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                        } else if (obj instanceof Slice) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                                Slice s = (Slice) obj;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                                ipos[i] = s.getPosition(opos[i]); // overwrite position<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                        } else if (obj instanceof IntegerDataset) { // allowed when restricted to 1D<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                                int p = ((Dataset) obj).getInt(opos[i]);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                                ipos[i] = p &lt; 0 ? p + ishape[i] : p;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                        } else {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                                throw new IllegalStateException("Bad state: index dataset after subspace");<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        } else {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                                for (int j = 0; j &lt; irank; j++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                        Object obj = indexes.get(j);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                        if (obj instanceof IntegerDataset) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                                IntegerDataset ind = (IntegerDataset) obj;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                                int p = ind.size &gt; 1 ? ind.get(spos) : ind.getAbs(0); // broadcasting<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                                ipos[i] = p &lt; 0 ? p + ishape[i] : p;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                                i++;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                                        }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                int o = orank - irank;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                for (; i &lt; irank; i++) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                        Object obj = indexes.get(i);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        if (obj == null) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                                ipos[i] = opos[i+o];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                        } else if (obj instanceof Slice) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                                Slice s = (Slice) obj;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                                ipos[i] = s.getPosition(opos[i+o]); // overwrite position<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                        } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                                throw new IllegalStateException("Bad state: index dataset after subspace");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>//                      System.err.println(Arrays.toString(opos) + ", " + Arrays.toString(spos) + ", " + Arrays.toString(ipos));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        return true;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                return false;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>        @Override<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        public int[] getPos() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return ipos;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        @Override<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        public void reset() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                it.reset();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                Arrays.fill(ipos, 0);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                index = 0;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>}<a name="line.268"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/InterpolatorUtils.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/InterpolatorUtils.html
new file mode 100644
index 0000000..9429e91
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/InterpolatorUtils.html
@@ -0,0 +1,578 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Collections;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Comparator;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>class InterpolatedPoint {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        Dataset realPoint;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        Dataset coordPoint;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        public InterpolatedPoint(Dataset realPoint, Dataset coordPoint) {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                this.realPoint = realPoint;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                this.coordPoint = coordPoint;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        }<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public Dataset getRealPoint() {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                return realPoint;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public Dataset getCoordPoint() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                return coordPoint;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        }<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        @Override<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public String toString() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                String realString = "[ " + realPoint.getDouble(0);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                for(int i = 1; i &lt; realPoint.getShapeRef()[0]; i++) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                        realString += " , " + realPoint.getDouble(i);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                realString += " ]";<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                <a name="line.44"></a>
+<span class="sourceLineNo">045</span>                String coordString = "[ " + coordPoint.getDouble(0);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                for(int i = 1; i &lt; coordPoint.getShapeRef()[0]; i++) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        coordString += " , " + coordPoint.getDouble(i) ;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                }<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                coordString += " ]";<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                <a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return realString + " : " + coordString;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>}<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>public class InterpolatorUtils {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public static Dataset regridOld(Dataset data, Dataset x, Dataset y,<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        Dataset gridX, Dataset gridY) throws Exception {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                <a name="line.60"></a>
+<span class="sourceLineNo">061</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, gridX.getShapeRef()[0], gridY.getShapeRef()[0]);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                <a name="line.62"></a>
+<span class="sourceLineNo">063</span>                IndexIterator itx = gridX.getIterator();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                <a name="line.64"></a>
+<span class="sourceLineNo">065</span>                // need a list of lists to store points<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                ArrayList&lt;ArrayList&lt;InterpolatedPoint&gt;&gt; pointList = new ArrayList&lt;ArrayList&lt;InterpolatedPoint&gt;&gt;();<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                <a name="line.67"></a>
+<span class="sourceLineNo">068</span>                while(itx.hasNext()){<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        // Add a list to contain all the points which we find<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        pointList.add(new ArrayList&lt;InterpolatedPoint&gt;());<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        <a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        int xindex = itx.index;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        double xPos = gridX.getDouble(xindex);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        <a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        IndexIterator ity = gridY.getIterator();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        while(ity.hasNext()){<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                int yindex = ity.index;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                System.out.println("Testing : "+xindex+","+yindex);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                double yPos = gridX.getDouble(yindex);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                result.set(getInterpolated(data, x, y, xPos, yPos), yindex, xindex);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                <a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                return result;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        <a name="line.86"></a>
+<span class="sourceLineNo">087</span>        <a name="line.87"></a>
+<span class="sourceLineNo">088</span>        <a name="line.88"></a>
+<span class="sourceLineNo">089</span>        <a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public static Dataset selectDatasetRegion(Dataset dataset, int x, int y, int xSize, int ySize) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                int startX = x - xSize;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                int startY = y - ySize;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                int endX = x + xSize + 1;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                int endY = y + ySize +1;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                <a name="line.95"></a>
+<span class="sourceLineNo">096</span>                int shapeX = dataset.getShapeRef()[0];<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                int shapeY = dataset.getShapeRef()[1];<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                <a name="line.98"></a>
+<span class="sourceLineNo">099</span>                // Do edge checking<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                if (startX &lt; 0) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        startX = 0;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        endX = 3;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                } <a name="line.103"></a>
+<span class="sourceLineNo">104</span>                <a name="line.104"></a>
+<span class="sourceLineNo">105</span>                if (endX &gt; shapeX) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        endX = shapeX;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        startX = endX-3;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                <a name="line.109"></a>
+<span class="sourceLineNo">110</span>                if (startY &lt; 0) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        startY = 0;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        endY = 3;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                <a name="line.114"></a>
+<span class="sourceLineNo">115</span>                if (endY &gt; shapeY) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        endY = shapeY;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        startY = endY-3;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                <a name="line.119"></a>
+<span class="sourceLineNo">120</span>                int[] start = new int[] { startX, startY };<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                int[] stop = new int[] { endX, endY };<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                <a name="line.122"></a>
+<span class="sourceLineNo">123</span>                <a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return dataset.getSlice(start, stop, null);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        <a name="line.126"></a>
+<span class="sourceLineNo">127</span>        private static double getInterpolated(Dataset val, Dataset x, Dataset y, double xPos,<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        double yPos) throws Exception {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                <a name="line.129"></a>
+<span class="sourceLineNo">130</span>                // initial guess<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                Dataset xPosDS = x.getSlice(new int[] {0,0}, new int[] {x.getShapeRef()[0],1}, null).isubtract(xPos);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                int xPosMin = xPosDS.minPos()[0];<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                Dataset yPosDS = y.getSlice(new int[] {xPosMin,0}, new int[] {xPosMin+1,y.getShapeRef()[1]}, null).isubtract(yPos);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                int yPosMin = yPosDS.minPos()[0];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                <a name="line.135"></a>
+<span class="sourceLineNo">136</span>                <a name="line.136"></a>
+<span class="sourceLineNo">137</span>                // now search around there 5x5<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                <a name="line.138"></a>
+<span class="sourceLineNo">139</span>                Dataset xClipped = selectDatasetRegion(x,xPosMin,yPosMin,2,2);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                Dataset yClipped = selectDatasetRegion(y,xPosMin,yPosMin,2,2);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                <a name="line.141"></a>
+<span class="sourceLineNo">142</span>                // first find the point in the arrays nearest to the point<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                Dataset xSquare = Maths.subtract(xClipped, xPos).ipower(2);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                Dataset ySquare = Maths.subtract(yClipped, yPos).ipower(2);<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>                Dataset total = Maths.add(xSquare, ySquare);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int[] pos = total.minPos();<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                // now pull out the region around that point, as a 3x3 grid     <a name="line.150"></a>
+<span class="sourceLineNo">151</span>                Dataset xReduced = selectDatasetRegion(x, pos[0], pos[1], 1, 1);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                Dataset yReduced = selectDatasetRegion(y, pos[0], pos[1], 1, 1);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                Dataset valReduced = selectDatasetRegion(val, pos[0], pos[1], 1, 1);<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>                return getInterpolatedResultFromNinePoints(valReduced, xReduced, yReduced, xPos, yPos);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>        private static double getInterpolatedResultFromNinePoints(Dataset val, Dataset x, Dataset y,<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        double xPos, double yPos) throws Exception {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                <a name="line.160"></a>
+<span class="sourceLineNo">161</span>                // First build the nine points<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                InterpolatedPoint p00 = makePoint(x, y, 0, 0);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                InterpolatedPoint p01 = makePoint(x, y, 0, 1);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                InterpolatedPoint p02 = makePoint(x, y, 0, 2);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                InterpolatedPoint p10 = makePoint(x, y, 1, 0);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                InterpolatedPoint p11 = makePoint(x, y, 1, 1);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                InterpolatedPoint p12 = makePoint(x, y, 1, 2);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                InterpolatedPoint p20 = makePoint(x, y, 2, 0);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                InterpolatedPoint p21 = makePoint(x, y, 2, 1);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                InterpolatedPoint p22 = makePoint(x, y, 2, 2);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>                // now try every connection and find points that intersect with the interpolated value<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                ArrayList&lt;InterpolatedPoint&gt; points = new ArrayList&lt;InterpolatedPoint&gt;();<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                InterpolatedPoint A = get1DInterpolatedPoint(p00, p10, 0, xPos);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                InterpolatedPoint B = get1DInterpolatedPoint(p10, p20, 0, xPos);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                InterpolatedPoint C = get1DInterpolatedPoint(p00, p01, 0, xPos);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                InterpolatedPoint D = get1DInterpolatedPoint(p10, p11, 0, xPos);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                InterpolatedPoint E = get1DInterpolatedPoint(p20, p21, 0, xPos);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                InterpolatedPoint F = get1DInterpolatedPoint(p01, p11, 0, xPos);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                InterpolatedPoint G = get1DInterpolatedPoint(p11, p21, 0, xPos);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                InterpolatedPoint H = get1DInterpolatedPoint(p01, p02, 0, xPos);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                InterpolatedPoint I = get1DInterpolatedPoint(p11, p12, 0, xPos);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                InterpolatedPoint J = get1DInterpolatedPoint(p21, p22, 0, xPos);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                InterpolatedPoint K = get1DInterpolatedPoint(p02, p12, 0, xPos);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                InterpolatedPoint L = get1DInterpolatedPoint(p12, p22, 0, xPos);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>                // Now add any to the list which are not null<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (A != null)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        points.add(A);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                if (B != null)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        points.add(B);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                if (C != null)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        points.add(C);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                if (D != null)<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        points.add(D);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (E != null)<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        points.add(E);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (F != null)<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        points.add(F);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                if (G != null)<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        points.add(G);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                if (H != null)<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        points.add(H);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                if (I != null)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        points.add(I);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                if (J != null)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        points.add(J);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (K != null)<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        points.add(K);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                if (L != null)<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        points.add(L);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                // if no intercepts, then retun NaN;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                if (points.size() == 0) return Double.NaN;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                <a name="line.216"></a>
+<span class="sourceLineNo">217</span>                InterpolatedPoint bestPoint = null;<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                // sort the points by y<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                Collections.sort(points, new Comparator&lt;InterpolatedPoint&gt;() {<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        public int compare(InterpolatedPoint o1, InterpolatedPoint o2) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                return (int) Math.signum(o1.realPoint.getDouble(1) - o2.realPoint.getDouble(1));<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                });<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                <a name="line.227"></a>
+<span class="sourceLineNo">228</span>                <a name="line.228"></a>
+<span class="sourceLineNo">229</span>                // now we have all the points which fit the x criteria, Find the points which fit the y<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                for (int a = 1; a &lt; points.size(); a++) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        InterpolatedPoint testPoint = get1DInterpolatedPoint(points.get(a - 1), points.get(a), 1, yPos);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        if (testPoint != null) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                bestPoint = testPoint;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                break;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                if (bestPoint == null) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        return Double.NaN;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                // now we have the best point, we can calculate the weights, and positions<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                int xs = (int) Math.floor(bestPoint.getCoordPoint().getDouble(0));<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                int ys = (int) Math.floor(bestPoint.getCoordPoint().getDouble(1));<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                <a name="line.245"></a>
+<span class="sourceLineNo">246</span>                double xoff = bestPoint.getCoordPoint().getDouble(0) - xs;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                double yoff = bestPoint.getCoordPoint().getDouble(1) - ys;<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>                // check corner cases<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (xs == 2) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        xs = 1;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        xoff = 1.0;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                <a name="line.254"></a>
+<span class="sourceLineNo">255</span>                if (ys == 2) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        ys = 1;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        yoff = 1.0;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                <a name="line.259"></a>
+<span class="sourceLineNo">260</span>                double w00 = (1 - xoff) * (1 - yoff);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                double w10 = (xoff) * (1 - yoff);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                double w01 = (1 - xoff) * (yoff);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                double w11 = (xoff) * (yoff);<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                <a name="line.264"></a>
+<span class="sourceLineNo">265</span>                // now using the weights, we can get the final interpolated value<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                double result = val.getDouble(xs, ys) * w00;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                result += val.getDouble(xs + 1, ys) * w10;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                result += val.getDouble(xs, ys + 1) * w01;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                result += val.getDouble(xs + 1, ys + 1) * w11;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                <a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return result;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>        private static InterpolatedPoint makePoint(Dataset x, Dataset y, int i, int j) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                Dataset realPoint = DatasetFactory.createFromObject(new double[] { x.getDouble(i, j), y.getDouble(i, j) });<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                Dataset coordPoint = DatasetFactory.createFromObject(new double[] { i, j });<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                return new InterpolatedPoint(realPoint, coordPoint);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>        /**<a name="line.280"></a>
+<span class="sourceLineNo">281</span>         * Gets an interpolated position when only dealing with 1 dimension for the interpolation.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * <a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * @param p1<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         *            Point 1<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * @param p2<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         *            Point 2<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param interpolationDimension<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *            The dimension in which the interpolation should be carried out<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param interpolatedValue<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            The value at which the interpolated point should be at in the chosen dimension<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return the new interpolated point.<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @throws IllegalArgumentException<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        private static InterpolatedPoint get1DInterpolatedPoint(InterpolatedPoint p1, InterpolatedPoint p2,<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        int interpolationDimension, double interpolatedValue) throws IllegalArgumentException {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                <a name="line.296"></a>
+<span class="sourceLineNo">297</span>                checkPoints(p1, p2);<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>                if (interpolationDimension &gt;= p1.getRealPoint().getShapeRef()[0]) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        throw new IllegalArgumentException("Dimention is too large for these datasets");<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                }<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>                double p1_n = p1.getRealPoint().getDouble(interpolationDimension);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                double p2_n = p2.getRealPoint().getDouble(interpolationDimension);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                double max = Math.max(p1_n, p2_n);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                double min = Math.min(p1_n, p2_n);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                <a name="line.307"></a>
+<span class="sourceLineNo">308</span>                if (interpolatedValue &lt; min || interpolatedValue &gt; max || min==max) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        return null;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                <a name="line.311"></a>
+<span class="sourceLineNo">312</span>                double proportion = (interpolatedValue - min) / (max - min);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                <a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return getInterpolatedPoint(p1, p2, proportion);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Gets an interpolated point between 2 points given a certain proportion<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * <a name="line.319"></a>
+<span class="sourceLineNo">320</span>         * @param p1<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         *            the initial point<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * @param p2<a name="line.322"></a>
+<span class="sourceLineNo">323</span>         *            the final point<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * @param proportion<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         *            how far the new point is along the path between P1(0.0) and P2(1.0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         * @return a new point which is the interpolated point<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         */<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        private static InterpolatedPoint getInterpolatedPoint(InterpolatedPoint p1, InterpolatedPoint p2, double proportion) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>                checkPoints(p1, p2);<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>                if (proportion &lt; 0 || proportion &gt; 1.0) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        throw new IllegalArgumentException("Proportion must be between 0 and 1");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>                Dataset p1RealContribution = Maths.multiply(p1.getRealPoint(), (1.0 - proportion));<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                Dataset p2RealContribution = Maths.multiply(p2.getRealPoint(), (proportion));<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>                Dataset realPoint = Maths.add(p1RealContribution, p2RealContribution);<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>                Dataset p1CoordContribution = Maths.multiply(p1.getCoordPoint(), (1.0 - proportion));<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                Dataset p2CoordContribution = Maths.multiply(p2.getCoordPoint(), (proportion));<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>                Dataset coordPoint = Maths.add(p1CoordContribution, p2CoordContribution);<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return new InterpolatedPoint(realPoint, coordPoint);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>        /**<a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * Checks to see if 2 points have the same dimensionality<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         * <a name="line.351"></a>
+<span class="sourceLineNo">352</span>         * @param p1<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         *            Point 1<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @param p2<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         *            Point 2<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         * @throws IllegalArgumentException<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         */<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        private static void checkPoints(InterpolatedPoint p1, InterpolatedPoint p2) throws IllegalArgumentException {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                if (!p1.getCoordPoint().isCompatibleWith(p2.getCoordPoint())) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        throw new IllegalArgumentException("Datasets do not match");<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        <a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public static Dataset remap1D(Dataset dataset, Dataset axis, Dataset outputAxis) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                Dataset data = DatasetFactory.zeros(DoubleDataset.class, outputAxis.getShapeRef());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                for(int i = 0; i &lt; outputAxis.getShapeRef()[0]; i++) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        double point = outputAxis.getDouble(i);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        double position = getRealPositionAsIndex(axis, point);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        if (position &gt;= 0.0) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                data.set(Maths.interpolate(dataset, position), i);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        } else {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                                data.set(Double.NaN,i);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                <a name="line.375"></a>
+<span class="sourceLineNo">376</span>                return data;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>        // TODO need to make this work with reverse number lists<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        private static double getRealPositionAsIndex(Dataset dataset, double point) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                for (int j = 0; j &lt; dataset.getShapeRef()[0]-1; j++) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        double end = dataset.getDouble(j+1);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        double start = dataset.getDouble(j);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        //TODO could make this check once outside the loop with a minor assumption.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        if ( start &lt; end) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                if ((end &gt; point) &amp;&amp; (start &lt;= point)) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                        // we have a bounding point<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                        double proportion = ((point-start)/(end-start));<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                                        return j + proportion;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                                }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        } else {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                if ((end &lt; point) &amp;&amp; (start &gt;= point)) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                        // we have a bounding point<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                        double proportion = ((point-start)/(end-start));<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                        return j + proportion;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                                }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        }<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                return -1.0;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        <a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public static Dataset remapOneAxis(Dataset dataset, int axisIndex, Dataset corrections,<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                        Dataset originalAxisForCorrection, Dataset outputAxis) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                int[] stop = dataset.getShape();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                int[] start = new int[stop.length];<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                int[] step = new int[stop.length];<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                int[] resultSize = new int[stop.length];<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                for (int i = 0 ; i &lt; start.length; i++) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        start[i] = 0;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        step[i] = 1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        resultSize[i] = stop[i];<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                <a name="line.413"></a>
+<span class="sourceLineNo">414</span>                resultSize[axisIndex] = outputAxis.getShapeRef()[0];<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, resultSize);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                <a name="line.416"></a>
+<span class="sourceLineNo">417</span>                step[axisIndex] = dataset.getShapeRef()[axisIndex];<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                IndexIterator iter = dataset.getSliceIterator(start, stop, step);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                <a name="line.419"></a>
+<span class="sourceLineNo">420</span>                int[] pos = iter.getPos();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                int[] posEnd = new int[pos.length];<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                while (iter.hasNext()){<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        for (int i = 0 ; i &lt; posEnd.length; i++) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                posEnd[i] = pos[i]+1;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                        posEnd[axisIndex] = stop[axisIndex];<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                        // get the dataset<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        Dataset slice = dataset.getSlice(pos, posEnd, null).squeeze();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        int[] correctionPos = new int[pos.length-1];<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        int index = 0;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        for(int j = 0; j &lt; pos.length; j++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                if (j != axisIndex) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                        correctionPos[index] = pos[j];<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        index++;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                }<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        Dataset axis = Maths.subtract(originalAxisForCorrection,corrections.getDouble(correctionPos));<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                        Dataset remapped = remap1D(slice,axis,outputAxis);<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        int[] ref = pos.clone();<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        for (int k = 0; k &lt; result.getShapeRef()[axisIndex]; k++) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                ref[axisIndex] = k;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                result.set(remapped.getDouble(k), ref);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                <a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return result;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        <a name="line.450"></a>
+<span class="sourceLineNo">451</span>        <a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public static Dataset remapAxis(Dataset dataset, int axisIndex, Dataset originalAxisForCorrection, Dataset outputAxis) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                if (!dataset.isCompatibleWith(originalAxisForCorrection)) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                        throw new IllegalArgumentException("Datasets must be of the same shape");<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                <a name="line.456"></a>
+<span class="sourceLineNo">457</span>                int[] stop = dataset.getShapeRef();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                int[] start = new int[stop.length];<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int[] step = new int[stop.length];<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                int[] resultSize = new int[stop.length];<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                for (int i = 0 ; i &lt; start.length; i++) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        start[i] = 0;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        step[i] = 1;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                        resultSize[i] = stop[i];<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                <a name="line.466"></a>
+<span class="sourceLineNo">467</span>                resultSize[axisIndex] = outputAxis.getShapeRef()[0];<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                DoubleDataset result = DatasetFactory.zeros(DoubleDataset.class, resultSize);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                <a name="line.469"></a>
+<span class="sourceLineNo">470</span>                step[axisIndex] = dataset.getShapeRef()[axisIndex];<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                IndexIterator iter = dataset.getSliceIterator(start, stop, step);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                <a name="line.472"></a>
+<span class="sourceLineNo">473</span>                int[] pos = iter.getPos();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                int[] posEnd = new int[pos.length];<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                while (iter.hasNext()){<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        for (int i = 0 ; i &lt; posEnd.length; i++) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                posEnd[i] = pos[i]+1;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        posEnd[axisIndex] = stop[axisIndex];<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                        <a name="line.480"></a>
+<span class="sourceLineNo">481</span>                        // get the dataset<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                        Dataset slice = dataset.getSlice(pos, posEnd, null).squeeze();<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                        Dataset axis = originalAxisForCorrection.getSlice(pos, posEnd, null).squeeze();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        <a name="line.484"></a>
+<span class="sourceLineNo">485</span>                        Dataset remapped = remap1D(slice,axis,outputAxis);<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        int[] ref = pos.clone();<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        for (int k = 0; k &lt; result.shape[axisIndex]; k++) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                ref[axisIndex] = k;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                result.set(remapped.getDouble(k), ref);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                }<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                <a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return result;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        public static Dataset regrid(Dataset data, Dataset x, Dataset y, Dataset gridX, Dataset gridY) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                <a name="line.499"></a>
+<span class="sourceLineNo">500</span>                // apply X then Y regridding<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                Dataset result = remapAxis(data,1,x,gridX);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                result = remapAxis(result,0,y,gridY);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                <a name="line.503"></a>
+<span class="sourceLineNo">504</span>                return result;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>}<a name="line.506"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDataset.html
new file mode 100644
index 0000000..323e2e9
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDataset.html
@@ -0,0 +1,700 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.IOException;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.io.Serializable;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.annotation.Annotation;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.reflect.Field;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.ArrayList;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.HashMap;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.List;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Map;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.eclipse.january.DatasetException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.IMonitor;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.io.ILazyLoader;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.metadata.MetadataFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.eclipse.january.metadata.MetadataType;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.eclipse.january.metadata.OriginMetadata;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.eclipse.january.metadata.Reshapeable;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.eclipse.january.metadata.Sliceable;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.eclipse.january.metadata.Transposable;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>public class LazyDataset extends LazyDatasetBase implements Serializable, Cloneable {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        private static final long serialVersionUID = 2467865859867440242L;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        protected int[]     oShape; // original shape<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        protected long      size;   // number of items<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected int       dtype;  // dataset type<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected int       isize;  // number of elements per item<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>        protected ILazyLoader loader;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        protected LazyDataset base = null; // used for transpose<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        // relative to loader or base<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        protected int         prepShape = 0; // prepending and post-pending <a name="line.47"></a>
+<span class="sourceLineNo">048</span>        protected int         postShape = 0; // changes to shape<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        protected int[]       begSlice = null; // slice begin<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        protected int[]       delSlice = null; // slice delta<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        protected int[]       map; // transposition map (same length as current shape)<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        protected Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; oMetadata = null;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Create a lazy dataset<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @param name<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @param dtype dataset type<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param elements<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param shape<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param loader<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public LazyDataset(String name, int dtype, int elements, int[] shape, ILazyLoader loader) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                this.name = name;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                this.shape = shape.clone();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                this.oShape = this.shape;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                this.loader = loader;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                this.dtype = dtype;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                this.isize = elements;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                try {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        size = ShapeUtils.calcLongSize(shape);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                } catch (IllegalArgumentException e) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = Long.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <a name="line.72"></a>
+<span class="sourceLineNo">073</span>                }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>        /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * Create a lazy dataset<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param name<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param dtype dataset type<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param shape<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param loader<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public LazyDataset(String name, int dtype, int[] shape, ILazyLoader loader) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                this(name, dtype, 1, shape, loader);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>        /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * Create a lazy dataset based on in-memory data (handy for testing)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param dataset<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        public static LazyDataset createLazyDataset(final Dataset dataset) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                return new LazyDataset(dataset.getName(), dataset.getDType(), dataset.getElementsPerItem(), dataset.getShape(),<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                new ILazyLoader() {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        private static final long serialVersionUID = -6725268922780517523L;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        final Dataset d = dataset;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        @Override<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        public boolean isFileReadable() {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                return true;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        @Override<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        public Dataset getDataset(IMonitor mon, SliceND slice) throws IOException {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                return d.getSlice(mon, slice);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                });<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        /**<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * Can return -1 for unknown<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        @Override<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public int getDType() {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                return dtype;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>        /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * Can return -1 for unknown<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        @Override<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        public int getElementsPerItem() {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                return isize;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>        @Override<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        public int getSize() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                return (int) size;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>        @Override<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public String toString() {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                StringBuilder out = new StringBuilder();<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>                if (name != null &amp;&amp; name.length() &gt; 0) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out.append("Lazy dataset '");<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        out.append(name);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        out.append("' has shape [");<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                } else {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        out.append("Lazy dataset shape is [");<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                int rank = shape == null ? 0 : shape.length;<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                if (rank &gt; 0 &amp;&amp; shape[0] &gt;= 0) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        out.append(shape[0]);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                for (int i = 1; i &lt; rank; i++) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        out.append(", " + shape[i]);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                out.append(']');<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>                return out.toString();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>        @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        public boolean equals(Object obj) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                if (!super.equals(obj))<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        return false;<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                LazyDataset other = (LazyDataset) obj;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (dtype != other.dtype) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return false;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (isize != other.isize) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return false;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        return false;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (loader != other.loader) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        return false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (prepShape != other.prepShape) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        return false;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>                if (postShape != other.postShape) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        return false;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                if (!Arrays.equals(begSlice, other.begSlice)) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        return false;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                if (!Arrays.equals(delSlice, other.delSlice)) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        return false;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (!Arrays.equals(map, other.map)) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return false;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                return true;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>        @Override<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public LazyDataset clone() {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                LazyDataset ret = new LazyDataset(new String(name), dtype, isize, oShape, loader);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                ret.shape = shape;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                ret.size = size;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                ret.prepShape = prepShape;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                ret.postShape = postShape;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                ret.begSlice = begSlice;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                ret.delSlice = delSlice;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                ret.map = map;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                ret.base = base;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                ret.metadata = copyMetadata();<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                ret.oMetadata = oMetadata;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                return ret;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>        @Override<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        public void setShape(int... shape) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                setShapeInternal(shape);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>        @Override<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public LazyDataset squeezeEnds() {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                setShapeInternal(ShapeUtils.squeezeShape(shape, true));<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return this;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>        @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        public Dataset getSlice(int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                return getSlice(null, start, stop, step);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>        @Override<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        public Dataset getSlice(Slice... slice) throws DatasetException {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                if (slice == null || slice.length == 0) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return getSlice(null, new SliceND(shape));<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                return getSlice(null, new SliceND(shape, slice));<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>        @Override<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        public Dataset getSlice(SliceND slice) throws DatasetException {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                return getSlice(null, slice);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>        @Override<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        public Dataset getSlice(IMonitor monitor, Slice... slice) throws DatasetException {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                if (slice == null || slice.length == 0) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        return getSlice(monitor, new SliceND(shape));<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                return getSlice(monitor, new SliceND(shape, slice));<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        public LazyDataset getSliceView(Slice... slice) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (slice == null || slice.length == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        return getSliceView(new SliceND(shape));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                return getSliceView(new SliceND(shape, slice));<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>        /**<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @param nShape<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         */<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        private void setShapeInternal(int... nShape) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                <a name="line.260"></a>
+<span class="sourceLineNo">261</span>                long nsize = ShapeUtils.calcLongSize(nShape);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (nsize != size) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        throw new IllegalArgumentException("Size of new shape is not equal to current size");<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                if (nsize == 1) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        shape = nShape.clone();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                int ob = -1; // first non-unit dimension<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                int or = shape.length;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                for (int i = 0; i &lt; or; i++) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        if (shape[i] != 1) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                ob = i;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                break;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                assert ob &gt;= 0;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                int oe = -1; // last non-unit dimension<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                for (int i = or - 1; i &gt;= ob; i--) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        if (shape[i] != 1) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                oe = i;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                                break;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        }<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                assert oe &gt;= 0;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                oe++;<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>                int nb = -1; // first non-unit dimension<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                int nr = nShape.length;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                for (int i = 0; i &lt; nr; i++) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        if (nShape[i] != 1) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                nb = i;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                break;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>                int i = ob;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                int j = nb;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (begSlice == null) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        for (; i &lt; oe &amp;&amp; j &lt; nr; i++, j++) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                if (shape[i] != nShape[j]) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                        throw new IllegalArgumentException("New shape not allowed - can only change shape by adding or removing ones to ends of old shape");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                } else {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        int[] nBegSlice = new int[nr];<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        int[] nDelSlice = new int[nr];<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        Arrays.fill(nDelSlice, 1);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        for (; i &lt; oe &amp;&amp; j &lt; nr; i++, j++) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                if (shape[i] != nShape[j]) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                        throw new IllegalArgumentException("New shape not allowed - can only change shape by adding or removing ones to ends of old shape");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                                nBegSlice[j] = begSlice[i];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                                nDelSlice[j] = delSlice[i];<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        <a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        begSlice = nBegSlice;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        delSlice = nDelSlice;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                prepShape += nb - ob;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                postShape += nr - oe;<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>                storeMetadata(metadata, Reshapeable.class);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                metadata = copyMetadata();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                reshapeMetadata(shape, nShape);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                shape = nShape;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>        @Override<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public LazyDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                return getSliceView(new SliceND(shape, start, stop, step));<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>        @Override<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        public LazyDataset getSliceView(SliceND slice) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                LazyDataset view = clone();<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                if (slice.isAll())<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        return view;<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                int[] lstart = slice.getStart();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                int[] lstep  = slice.getStep();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                final int rank = shape.length;<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>                int[] nShape = slice.getShape();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                view.shape = nShape;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                view.size = ShapeUtils.calcLongSize(nShape);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                if (begSlice == null) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        view.begSlice = lstart.clone();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        view.delSlice = lstep.clone();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                } else {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        view.begSlice = new int[rank];<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        view.delSlice = new int[rank];<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                view.begSlice[i] = begSlice[i] + lstart[i] * delSlice[i];<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                view.delSlice[i] = delSlice[i] * lstep[i];<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                view.storeMetadata(metadata, Sliceable.class);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                <a name="line.361"></a>
+<span class="sourceLineNo">362</span>                view.sliceMetadata(true, slice);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                return view;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        }<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>        @Override<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        public LazyDataset getTransposedView(int... axes) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                LazyDataset view = clone();<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>                // everything now is seen through a map<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                axes = checkPermutatedAxes(shape, axes);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                if (axes == null)<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        return view;<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>                int r = shape.length;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                view.shape = new int[r];<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                for (int i = 0; i &lt; r; i++) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        view.shape[i] = shape[axes[i]];<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>                view.prepShape = 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                view.postShape = 0;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                view.begSlice = null;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                view.delSlice = null;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                view.map = axes;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                view.base = this;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                view.storeMetadata(metadata, Transposable.class);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                view.transposeMetadata(axes);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                return view;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        }<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>        @Override<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        public Dataset getSlice(IMonitor monitor, int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                return getSlice(monitor, new SliceND(shape, start, stop, step));<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>        @Override<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public Dataset getSlice(IMonitor monitor, SliceND slice) throws DatasetException {<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>                if (loader != null &amp;&amp; !loader.isFileReadable())<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                        return null; // TODO add interaction to use plot (or remote) server to load dataset<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>                SliceND nslice = calcTrueSlice(slice);<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>                Dataset a;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                if (base != null) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        a = base.getSlice(monitor, nslice);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                } else {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        try {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                a = DatasetUtils.convertToDataset(loader.getDataset(monitor, nslice));<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        } catch (IOException e) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                                logger.error("Problem getting {}: {}", String.format("slice %s %s %s from %s", Arrays.toString(slice.getStart()), Arrays.toString(slice.getStop()),<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                                                Arrays.toString(slice.getStep()), loader), e);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                throw new DatasetException(e);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                        }<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                        a.setName(name + AbstractDataset.BLOCK_OPEN + nslice.toString() + AbstractDataset.BLOCK_CLOSE);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        if (metadata != null &amp;&amp; a instanceof LazyDatasetBase) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                LazyDatasetBase ba = (LazyDatasetBase) a;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                ba.metadata = copyMetadata();<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                if (oMetadata != null)<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                                        ba.restoreMetadata(oMetadata);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                                //metadata axis may be larger than data<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                if (!nslice.isAll() || nslice.getMaxShape() != nslice.getShape())<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                        ba.sliceMetadata(true, nslice);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                        }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                if (map != null) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        a = a.getTransposedView(map);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                if (slice != null)<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        a.setShape(slice.getShape());<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                a.addMetadata(MetadataFactory.createMetadata(OriginMetadata.class, this, nslice.convertToSlice(), oShape, null, name));<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                <a name="line.433"></a>
+<span class="sourceLineNo">434</span>                return a;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        // reverse transform<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        private int[] getOriginal(int[] values) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                if (values == null)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        return null;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                int r = values.length;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                if (map == null || r &lt; 2)<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return values;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                int[] ovalues = new int[r];<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                for (int i = 0; i &lt; r; i++) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        ovalues[map[i]] = values[i];<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                }<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return ovalues;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        protected final SliceND calcTrueSlice(SliceND slice) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                if (slice == null) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        slice = new SliceND(shape);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                int[] lstart = slice.getStart();<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                int[] lstop  = slice.getStop();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                int[] lstep  = slice.getStep();<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>                int[] nstart;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                int[] nstop;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                int[] nstep;<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>                int r = base == null ? oShape.length : base.shape.length;<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                nstart = new int[r];<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                nstop = new int[r];<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                nstep = new int[r];<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                Arrays.fill(nstop, 1);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                Arrays.fill(nstep, 1);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                        int i = 0;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        int j = 0;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                        if (prepShape &lt; 0) { // ignore entries from new slice <a name="line.472"></a>
+<span class="sourceLineNo">473</span>                                i = -prepShape;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        } else if (prepShape &gt; 0) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                                j = prepShape;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                        }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                        if (begSlice == null) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                                for (; i &lt; r &amp;&amp; j &lt; shape.length; i++, j++) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                                        nstart[i] = lstart[j];<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                        nstop[i]  = lstop[j];<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                                        int d = lstep[j];<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                                        if (d &lt; 0 &amp;&amp; nstop[i] &lt; 0) { // need to wrap around further<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                                int l = base == null ? oShape[j]: base.shape[j];<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                                                nstop[i] -= l;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                        }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                        nstep[i]  = d;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        } else {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                for (; i &lt; r &amp;&amp; j &lt; shape.length; i++, j++) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                        int b = begSlice[j];<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                        int d = delSlice[j];<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                        nstart[i] = b + lstart[j] * d;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                                        nstop[i]  = b + (lstop[j] - 1) * d + (d &gt;= 0 ? 1 : -1);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                                        if (d &lt; 0 &amp;&amp; nstop[i] &lt; 0) { // need to wrap around further<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                                int l = base == null ? oShape[j]: base.shape[j];<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                                                nstop[i] -= l;<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                                        }<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                                        nstep[i]  = lstep[j] * d;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                                }<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        if (map != null) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                nstart = getOriginal(nstart);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                nstop  = getOriginal(nstop);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                nstep  = getOriginal(nstep);<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        }<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                }<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return createSlice(nstart, nstop, nstep);<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        protected final IDataset transformInput(IDataset data) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                if (map == null)<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        return data;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                return data.getTransposedView(map);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        }<a name="line.515"></a>
+<span class="sourceLineNo">516</span><a name="line.516"></a>
+<span class="sourceLineNo">517</span>        protected SliceND createSlice(int[] nstart, int[] nstop, int[] nstep) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return new SliceND(base == null ? oShape : base.shape, nstart, nstop, nstep);<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        /**<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * Store metadata items that has given annotation<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * @param origMetadata<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         * @param aclazz<a name="line.524"></a>
+<span class="sourceLineNo">525</span>         */<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        private void storeMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; origMetadata, Class&lt;? extends Annotation&gt; aclazz) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                List&lt;Class&lt;? extends MetadataType&gt;&gt; mclazzes = findAnnotatedMetadata(aclazz);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                if (mclazzes.size() == 0)<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        return;<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>                if (oMetadata == null) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        oMetadata = new HashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                }<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                for (Class&lt;? extends MetadataType&gt; mc : mclazzes) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        if (oMetadata.containsKey(mc))<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                continue; // do not overwrite original<a name="line.536"></a>
+<span class="sourceLineNo">537</span><a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        List&lt;MetadataType&gt; l = origMetadata.get(mc);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        List&lt;MetadataType&gt; nl = new ArrayList&lt;MetadataType&gt;(l.size());<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                        for (MetadataType m : l) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                nl.add(m.clone());<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        }<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        oMetadata.put(mc, nl);<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                }<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>        @SuppressWarnings("unchecked")<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        private List&lt;Class&lt;? extends MetadataType&gt;&gt; findAnnotatedMetadata(Class&lt;? extends Annotation&gt; aclazz) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                List&lt;Class&lt;? extends MetadataType&gt;&gt; mclazzes = new ArrayList&lt;Class&lt;? extends MetadataType&gt;&gt;();<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                if (metadata == null)<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        return mclazzes;<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        boolean hasAnn = false;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        for (MetadataType m : metadata.get(c)) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                if (m == null)<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                        continue;<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                Class&lt;? extends MetadataType&gt; mc = m.getClass();<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                do { // iterate over super-classes<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                        for (Field f : mc.getDeclaredFields()) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                                if (f.isAnnotationPresent(aclazz)) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                                        hasAnn = true;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                                        break;<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                                }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                        }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                        Class&lt;?&gt; sclazz = mc.getSuperclass();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                        if (!MetadataType.class.isAssignableFrom(sclazz))<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                                break;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                        mc = (Class&lt;? extends MetadataType&gt;) sclazz;<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                } while (!hasAnn);<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                if (hasAnn)<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                        break;<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        if (hasAnn) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                mclazzes.add(c);<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                }<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                return mclazzes;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>        /**<a name="line.582"></a>
+<span class="sourceLineNo">583</span>         * Gets the maximum size of a slice of a dataset in a given dimension<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         * which should normally fit in memory. Note that it might be possible<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * to get more in memory, this is a conservative estimate and seems to<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * almost always work at the size returned; providing Xmx is less than<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * the physical memory.<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         * <a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * To get more in memory increase -Xmx setting or use an expression<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * which calls a rolling function (like rmean) instead of slicing directly<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * to memory.<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         * <a name="line.592"></a>
+<span class="sourceLineNo">593</span>         * @param lazySet<a name="line.593"></a>
+<span class="sourceLineNo">594</span>         * @param dimension<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * @return maximum size of dimension that can be sliced.<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         */<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public static int getMaxSliceLength(ILazyDataset lazySet, int dimension) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                // size in bytes of each item<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                final double size = DTypeUtils.getItemBytes(DTypeUtils.getDTypeFromClass(lazySet.getElementClass()), lazySet.getElementsPerItem());<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                <a name="line.600"></a>
+<span class="sourceLineNo">601</span>                // Max in bytes takes into account our minimum requirement<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                final double max  = Math.max(Runtime.getRuntime().totalMemory(), Runtime.getRuntime().maxMemory());<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                <a name="line.603"></a>
+<span class="sourceLineNo">604</span>        // Firstly if the whole dataset it likely to fit in memory, then we allow it.<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                // Space specified in bytes per item available<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                final double space = max/lazySet.getSize();<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                // If we have room for this whole dataset, then fine<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                int[] shape = lazySet.getShape();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                if (space &gt;= size)<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        return shape[dimension];<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                <a name="line.612"></a>
+<span class="sourceLineNo">613</span>                // Otherwise estimate what we can fit in, conservatively.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                // First get size of one slice, see it that fits, if not, still return 1<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                double sizeOneSlice = size; // in bytes<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                for (int dim = 0; dim &lt; shape.length; dim++) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        if (dim == dimension)<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                continue;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                        sizeOneSlice *= shape[dim];<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                double avail = max / sizeOneSlice;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                if (avail &lt; 1)<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        return 1;<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>                // We fudge this to leave some room<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                return (int) Math.floor(avail/4d);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span>}<a name="line.628"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDatasetBase.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDatasetBase.html
new file mode 100644
index 0000000..b4a4c80
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDatasetBase.html
@@ -0,0 +1,1176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.annotation.Annotation;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.reflect.Array;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.reflect.Field;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.ArrayList;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collection;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.ConcurrentMap;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Map;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.DatasetException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.MetadataException;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.eclipse.january.metadata.Dirtiable;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.eclipse.january.metadata.ErrorMetadata;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.eclipse.january.metadata.IMetadata;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.eclipse.january.metadata.MetadataFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.eclipse.january.metadata.MetadataType;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.eclipse.january.metadata.Reshapeable;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.eclipse.january.metadata.Sliceable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.eclipse.january.metadata.Transposable;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.slf4j.Logger;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.slf4j.LoggerFactory;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>/**<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Common base for both lazy and normal dataset implementations<a name="line.41"></a>
+<span class="sourceLineNo">042</span> */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>public abstract class LazyDatasetBase implements ILazyDataset, Serializable {<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        private static final long serialVersionUID = 767926846438976050L;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        protected static final Logger logger = LoggerFactory.getLogger(LazyDatasetBase.class);<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        protected static boolean catchExceptions;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>        static {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                 * Boolean to set to true if running jython scripts that utilise ScisoftPy in IDE<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                 */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                try {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        catchExceptions = Boolean.getBoolean("run.in.eclipse");<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                } catch (SecurityException e) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        // set a default for when the security manager does not allow access to the requested key<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        catchExceptions = false;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>        transient private boolean dirty = true; // indicate dirty state of metadata<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        protected String name = "";<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * The shape or dimensions of the dataset<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        protected int[] shape;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>        protected ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; metadata = null;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @return type of dataset item<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        abstract public int getDType();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        @Override<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public Class&lt;?&gt; getElementClass() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                return DTypeUtils.getElementClass(getDType());<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        @Override<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        public LazyDatasetBase clone() {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                return null;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        @Override<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public boolean equals(Object obj) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (this == obj) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return true;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (obj == null) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        return false;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                if (!getClass().equals(obj.getClass())) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        return false;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        <a name="line.99"></a>
+<span class="sourceLineNo">100</span>                LazyDatasetBase other = (LazyDatasetBase) obj;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                if (getDType() != other.getDType()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        return false;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                if (getElementsPerItem() != other.getElementsPerItem()) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        return false;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                if (!Arrays.equals(shape, other.shape)) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return false;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                return true;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>        @Override<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        public int hashCode() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                int hash = getDType() * 17 + getElementsPerItem();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                int rank = shape.length;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        hash = hash*17 + shape[i];<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                return hash;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>        @Override<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public String getName() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                return name;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>        @Override<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public void setName(String name) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                this.name = name;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        public int[] getShape() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                return shape.clone();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>        @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public int getRank() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                return shape.length;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>        /**<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * This method allows anything that dirties the dataset to clear various metadata values<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * so that the other methods can work correctly.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @since 2.1<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         */<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        public void setDirty() {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                dirty = true;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        }<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        /**<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * Find first sub-interface of (or class that directly implements) MetadataType<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @param clazz<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @return sub-interface<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @exception IllegalArgumentException when given class is {@link MetadataType} or an anonymous sub-class of it<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         */<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        @SuppressWarnings("unchecked")<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        public static Class&lt;? extends MetadataType&gt; findMetadataTypeSubInterfaces(Class&lt;? extends MetadataType&gt; clazz) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                if (clazz.equals(MetadataType.class)) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        throw new IllegalArgumentException("Cannot accept MetadataType");<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                if (clazz.isInterface()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        return clazz;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                if (clazz.isAnonymousClass()) { // special case<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        Class&lt;?&gt; s = clazz.getSuperclass();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                        if (!s.equals(Object.class)) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                // only use super class if it is not an anonymous class of an interface<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                clazz = (Class&lt;? extends MetadataType&gt;) s;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                for (Class&lt;?&gt; c : clazz.getInterfaces()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        if (c.equals(MetadataType.class)) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                if (clazz.isAnonymousClass()) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        throw new IllegalArgumentException("Cannot accept anonymous subclasses of MetadataType");<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                return clazz;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        if (MetadataType.class.isAssignableFrom(c)) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                return (Class&lt;? extends MetadataType&gt;) c;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>                Class&lt;?&gt; c = clazz.getSuperclass(); // Naughty: someone has sub-classed a metadata class<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (c != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return findMetadataTypeSubInterfaces((Class&lt;? extends MetadataType&gt;) c);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>                logger.error("Somehow the search for metadata type interface ended in a bad place");<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                assert false; // should not be able to get here!!!<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                return null;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>        @Override<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        public void setMetadata(MetadataType metadata) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                addMetadata(metadata, true);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        public void addMetadata(MetadataType metadata) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                addMetadata(metadata, false);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>        private synchronized void addMetadata(MetadataType metadata, boolean clear) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (metadata == null)<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        return;<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                if (this.metadata == null) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        this.metadata = new ConcurrentHashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>                Class&lt;? extends MetadataType&gt; clazz = findMetadataTypeSubInterfaces(metadata.getClass());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                if (!this.metadata.containsKey(clazz)) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        this.metadata.put(clazz, new ArrayList&lt;MetadataType&gt;());<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                } else if (clear) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        this.metadata.get(clazz).clear();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                this.metadata.get(clazz).add(metadata);<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>                // add for special case of sub-interfaces of IMetadata<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                if (!IMetadata.class.equals(clazz) &amp;&amp; IMetadata.class.isAssignableFrom(clazz)) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        clazz = IMetadata.class;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        if (!this.metadata.containsKey(clazz)) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                this.metadata.put(clazz, new ArrayList&lt;MetadataType&gt;());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        } else if (clear) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                this.metadata.get(clazz).clear();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        this.metadata.get(clazz).add(metadata);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        @Deprecated<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        public synchronized IMetadata getMetadata() {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return getFirstMetadata(IMetadata.class);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        @SuppressWarnings("unchecked")<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        public synchronized &lt;S extends MetadataType, T extends S&gt; List&lt;S&gt; getMetadata(Class&lt;T&gt; clazz) throws MetadataException {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                if (metadata == null) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        dirty = false;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        return null;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (dirty) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        dirtyMetadata();<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        dirty = false;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>                if (clazz == null) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        List&lt;S&gt; all = new ArrayList&lt;S&gt;();<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                all.addAll((Collection&lt;S&gt;) metadata.get(c));<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        return all;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return (List&lt;S&gt;) metadata.get(findMetadataTypeSubInterfaces(clazz));<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>        @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        public synchronized &lt;S extends MetadataType, T extends S&gt; S getFirstMetadata(Class&lt;T&gt; clazz) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                try {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        List&lt;S&gt; ml = getMetadata(clazz);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        if (ml == null) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                return null;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        for (S t : ml) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                if (clazz.isInstance(t)) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                        return t;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                } catch (Exception e) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        logger.error("Get metadata failed!",e);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return null;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        public synchronized void clearMetadata(Class&lt;? extends MetadataType&gt; clazz) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                if (metadata == null)<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                        return;<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>                if (clazz == null) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        metadata.clear();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        return;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                }<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>                List&lt;MetadataType&gt; list = metadata.get(findMetadataTypeSubInterfaces(clazz));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                if( list != null) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        list.clear();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        /**<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         * @since 2.0<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        protected synchronized ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; copyMetadata() {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                return copyMetadata(metadata);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>        /**<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * @since 2.0<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         */<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        protected static ConcurrentMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; copyMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; metadata) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                if (metadata == null)<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        return null;<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>                ConcurrentHashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; map = new ConcurrentHashMap&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt;();<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>                for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        List&lt;MetadataType&gt; l = metadata.get(c);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        List&lt;MetadataType&gt; nl = new ArrayList&lt;MetadataType&gt;(l.size());<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        map.put(c, nl);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        for (MetadataType m : l) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                nl.add(m.clone());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                return map;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>        interface MetadatasetAnnotationOperation {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                /**<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                 * Process value of given field<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                 * &lt;p&gt;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                 * When the field is not a container then the returned value<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                 * may replace the old value<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                 * @param f given field<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                 * @param o value of field<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                 * @return transformed field<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                 */<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                Object processField(Field f, Object o);<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>                /**<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                 * @return annotated class<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                 */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                Class&lt;? extends Annotation&gt; getAnnClass();<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>                /**<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                 * @param axis<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                 * @return number of dimensions to insert or remove<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                 */<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                int change(int axis);<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>                /**<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                 * <a name="line.352"></a>
+<span class="sourceLineNo">353</span>                 * @return rank or -1 to match<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                 */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                int getNewRank();<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                 * Run on given lazy dataset<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                 * @param lz<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                 * @return <a name="line.360"></a>
+<span class="sourceLineNo">361</span>                 */<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                ILazyDataset run(ILazyDataset lz);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>        class MdsSlice implements MetadatasetAnnotationOperation {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                private boolean asView;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                private int[] start;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                private int[] stop;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                private int[] step;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                private int[] oShape;<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                private long oSize;<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>                public MdsSlice(boolean asView, final int[] start, final int[] stop, final int[] step, final int[] oShape) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                        this.asView = asView;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        this.start = start;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                        this.stop = stop;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                        this.step = step;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        this.oShape = oShape;<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        oSize = ShapeUtils.calcLongSize(oShape);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>                @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                public Object processField(Field field, Object o) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        return o;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>                @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                        return Sliceable.class;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                }<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>                @Override<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                public int change(int axis) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                        return 0;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>                @Override<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                public int getNewRank() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        return -1;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>                @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        int rank = lz.getRank();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                        if (start.length != rank) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                                throw new IllegalArgumentException("Slice dimensions do not match dataset!");<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                        }<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>                        int[] shape = lz.getShape();<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                        int[] stt;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                        int[] stp;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                        int[] ste;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        if (lz.getSize() == oSize) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                stt = start;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>                                stp = stop;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                ste = step;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                        } else {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                stt = start.clone();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                stp = stop.clone();<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                ste = step.clone();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                                for (int i = 0; i &lt; rank; i++) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                                        if (shape[i] &gt;= oShape[i]) continue;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                        if (shape[i] == 1) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                                stt[i] = 0;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                                stp[i] = 1;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                                ste[i] = 1;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                        } else {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                                throw new IllegalArgumentException("Sliceable dataset has invalid size!");<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                                }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        if (asView || (lz instanceof IDataset))<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                return lz.getSliceView(stt, stp, ste);<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                        try {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                return lz.getSlice(stt, stp, ste);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        } catch (DatasetException e) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                logger.error("Could not slice dataset in metadata", e);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                return null;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        class MdsReshape implements MetadatasetAnnotationOperation {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                private boolean matchRank;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                private int[] oldShape;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                private int[] newShape;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                boolean onesOnly;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                int[] differences;<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                /*<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                 * if only ones then record differences (insertions and deletions)<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                 * <a name="line.453"></a>
+<span class="sourceLineNo">454</span>                 * if shape changing, find broadcasted dimensions and disallow<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                 * merging that include those dimensions<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                 */<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public MdsReshape(final int[] oldShape, final int[] newShape) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        this.oldShape = oldShape;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        this.newShape = newShape;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                        differences = null;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>                @Override<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                public Object processField(Field field, Object o) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                        Annotation a = field.getAnnotation(Reshapeable.class);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                        if (a != null) { // cannot be null<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                matchRank = ((Reshapeable) a).matchRank();<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        return o;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>                @Override<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        return Reshapeable.class;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                }<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>                @Override<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                public int change(int axis) {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                        if (matchRank) {<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                if (differences == null)<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                                        init();<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                if (onesOnly) {<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                                        return differences[axis];<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                throw new UnsupportedOperationException("TODO support other shape operations");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                        }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        return 0;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>                @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                public int getNewRank() {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        return matchRank ? newShape.length : -1;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>                private void init() {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        int or = oldShape.length - 1;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                        int nr = newShape.length - 1;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        if (or &lt; 0 || nr &lt; 0) { // zero-rank shapes<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                                onesOnly = true;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                                differences = new int[1];<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                differences[0] = or &lt; 0 ? nr + 1 : or + 1;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                                return;<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        int ob = 0;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        int nb = 0;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        onesOnly = true;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                        do {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                while (oldShape[ob] == 1 &amp;&amp; ob &lt; or) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                        ob++; // next non-unit dimension<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                }<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                                while (newShape[nb] == 1 &amp;&amp; nb &lt; nr) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                                        nb++;<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                                }<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                                if (oldShape[ob++] != newShape[nb++]) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                                        onesOnly = false;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                        break;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                                }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                        } while (ob &lt;= or &amp;&amp; nb &lt;= nr);<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        ob = 0;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                        nb = 0;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        differences = new int[or + 2];<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        if (onesOnly) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                                // work out unit dimensions removed from or add to old<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                int j = 0;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                                do {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                                        if (oldShape[ob] != 1 &amp;&amp; newShape[nb] != 1) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                                ob++;<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                                                nb++;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                                        } else {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                                while (oldShape[ob] == 1 &amp;&amp; ob &lt; or) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                                        ob++;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                                                        differences[j]--;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                                }<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                                while (newShape[nb] == 1 &amp;&amp; nb &lt; nr) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                                                        nb++;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                                                        differences[j]++;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                                                }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                        j++;<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                } while (ob &lt;= or &amp;&amp; nb &lt;= nr &amp;&amp; j &lt;= or);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                                while (ob &lt;= or &amp;&amp; oldShape[ob] == 1) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                        ob++;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                        differences[j]--;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                }<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                while (nb &lt;= nr &amp;&amp; newShape[nb] == 1) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                        nb++;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                        differences[j]++;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                }<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        } else {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                if (matchRank) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                        logger.error("Combining dimensions is currently not supported");<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                        throw new IllegalArgumentException("Combining dimensions is currently not supported");<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                // work out mapping: contiguous dimensions can be grouped or split<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                while (ob &lt;= or &amp;&amp; nb &lt;= nr) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                        int ol = oldShape[ob];<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                        while (ol == 1 &amp;&amp; ol &lt;= or) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                                ob++;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                                ol = oldShape[ob];<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                        }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                        int oe = ob + 1;<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                        int nl = newShape[nb];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                        while (nl == 1 &amp;&amp; nl &lt;= nr) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                                nb++;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                                                nl = newShape[nb];<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                                        }<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                                        int ne = nb + 1;<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                                        if (ol &lt; nl) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                                                differences[ob] = 1;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                                                do { // case where new shape combines several dimensions into one dimension<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                                        if (oe == (or + 1)) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                                                break;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                                                        }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                                        differences[oe] = 1;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                                        ol *= oldShape[oe++];<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                                } while (ol &lt; nl);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                                differences[oe - 1] = oe - ob; // signal end with difference<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                                if (nl != ol) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                                        logger.error("Single dimension is incompatible with subshape");<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                                        throw new IllegalArgumentException("Single dimension is incompatible with subshape");<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                                }<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                        } else if (ol &gt; nl) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                                do { // case where new shape spreads single dimension over several dimensions<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                                        if (ne == (nr + 1)) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                                                break;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                                        }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                                        nl *= newShape[ne++];<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                                } while (nl &lt; ol);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                                if (nl != ol) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                                                        logger.error("Subshape is incompatible with single dimension");<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                                        throw new IllegalArgumentException("Subshape is incompatible with single dimension");<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                                }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        ob = oe;<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                        nb = ne;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>                        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                }<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>                @Override<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        if (differences == null)<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                init();<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        int[] lshape = lz.getShape();<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        if (Arrays.equals(newShape, lshape)) {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                return lz;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        int or = lz.getRank();<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        int nr = newShape.length;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                        int[] nshape = new int[nr];<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        Arrays.fill(nshape, 1);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        if (onesOnly) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                // ignore omit removed dimensions<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                for (int i = 0, si = 0, di = 0; i &lt; (or+1) &amp;&amp; si &lt;= or &amp;&amp; di &lt; nr; i++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                        int c = differences[i];<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                        if (c == 0) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                                nshape[di++] = lshape[si++];<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                        } else if (c &gt; 0) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                                while (c-- &gt; 0 &amp;&amp; di &lt; nr) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                                        di++;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                                }<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                        } else if (c &lt; 0) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                                si -= c; // remove dimensions by skipping forward in source array<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                        }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        } else {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                                boolean[] broadcast = new boolean[or];<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                for (int ob = 0; ob &lt; or; ob++) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                                        broadcast[ob] = oldShape[ob] != 1 &amp;&amp; lshape[ob] == 1;<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                }<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                int osize = lz.getSize();<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                // cannot do 3x5x... to 15x... if metadata is broadcasting (i.e. 1x5x...)<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                int ob = 0;<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                int nsize = 1;<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                for (int i = 0; i &lt; nr; i++) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                        if (ob &lt; or &amp;&amp; broadcast[ob]) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                                if (differences[ob] != 0) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                                        logger.error("Metadata contains a broadcast axis which cannot be reshaped");<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                                        throw new IllegalArgumentException("Metadata contains a broadcast axis which cannot be reshaped");<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                                }<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                        } else {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                                nshape[i] = nsize &lt; osize ? newShape[i] : 1;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                        nsize *= nshape[i];<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        ob++;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        ILazyDataset nlz = lz.getSliceView();<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        if (lz instanceof Dataset) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                nlz = ((Dataset) lz).reshape(nshape);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        } else {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                nlz = lz.getSliceView();<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                nlz.setShape(nshape);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                        }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                        return nlz;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>        }<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>        class MdsTranspose implements MetadatasetAnnotationOperation {<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                int[] map;<a name="line.668"></a>
+<span class="sourceLineNo">669</span><a name="line.669"></a>
+<span class="sourceLineNo">670</span>                public MdsTranspose(final int[] axesMap) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        map = axesMap;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span><a name="line.673"></a>
+<span class="sourceLineNo">674</span>                @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                @Override<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                public Object processField(Field f, Object o) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        // reorder arrays and lists according the axes map<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        if (o.getClass().isArray()) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                int l = Array.getLength(o);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                if (l == map.length) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                        Object narray = Array.newInstance(o.getClass().getComponentType(), l);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                                Array.set(narray, i, Array.get(o, map[i]));<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                        }<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                                Array.set(o, i, Array.get(narray, i));<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                        }<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        } else if (o instanceof List&lt;?&gt;) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                List list = (List) o;<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                int l = list.size();<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                if (l == map.length) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        Object narray = Array.newInstance(o.getClass().getComponentType(), l);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                Array.set(narray, i, list.get(map[i]));<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                        }<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                        list.clear();<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        for (int i = 0; i &lt; l; i++) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                                list.add(Array.get(narray, i));<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                        }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        return o;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                }<a name="line.704"></a>
+<span class="sourceLineNo">705</span><a name="line.705"></a>
+<span class="sourceLineNo">706</span>                @Override<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        return Transposable.class;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>                @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                public int change(int axis) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        return 0;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                }<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                @Override<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                public int getNewRank() {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        return -1;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>                @Override<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                        return lz.getTransposedView(map);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                }<a name="line.724"></a>
+<span class="sourceLineNo">725</span>        }<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>        class MdsDirty implements MetadatasetAnnotationOperation {<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>                @Override<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                public Object processField(Field f, Object o) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                        // throw exception if not boolean???<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        Class&lt;?&gt; t = f.getType();<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        if (t.equals(boolean.class) || t.equals(Boolean.class)) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                                if (o.equals(false)) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                                        o = true;<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                                }<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        }<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        return o;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>                @Override<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                public Class&lt;? extends Annotation&gt; getAnnClass() {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        return Dirtiable.class;<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                }<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>                @Override<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                public int change(int axis) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                        return 0;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>                @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                public int getNewRank() {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        return -1;<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                }<a name="line.754"></a>
+<span class="sourceLineNo">755</span><a name="line.755"></a>
+<span class="sourceLineNo">756</span>                @Override<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                public ILazyDataset run(ILazyDataset lz) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                        return lz;<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                }<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>        /**<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         * Slice all datasets in metadata that are annotated by @Sliceable. Call this on the new sliced<a name="line.763"></a>
+<span class="sourceLineNo">764</span>         * dataset after cloning the metadata<a name="line.764"></a>
+<span class="sourceLineNo">765</span>         * @param asView if true then just a view<a name="line.765"></a>
+<span class="sourceLineNo">766</span>         * @param slice<a name="line.766"></a>
+<span class="sourceLineNo">767</span>         */<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        protected void sliceMetadata(boolean asView, final SliceND slice) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                processAnnotatedMetadata(new MdsSlice(asView, slice.getStart(), slice.getStop(), slice.getStep(), slice.getSourceShape()), true);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        /**<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * Reshape all datasets in metadata that are annotated by @Reshapeable. Call this when squeezing<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * or setting the shape<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * <a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @param newShape<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         */<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        protected void reshapeMetadata(final int[] oldShape, final int[] newShape) {<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                processAnnotatedMetadata(new MdsReshape(oldShape, newShape), true);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        }<a name="line.780"></a>
+<span class="sourceLineNo">781</span><a name="line.781"></a>
+<span class="sourceLineNo">782</span>        /**<a name="line.782"></a>
+<span class="sourceLineNo">783</span>         * Transpose all datasets in metadata that are annotated by @Transposable. Call this on the transposed<a name="line.783"></a>
+<span class="sourceLineNo">784</span>         * dataset after cloning the metadata<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         * @param axesMap<a name="line.785"></a>
+<span class="sourceLineNo">786</span>         */<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        protected void transposeMetadata(final int[] axesMap) {<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                processAnnotatedMetadata(new MdsTranspose(axesMap), true);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>        /**<a name="line.791"></a>
+<span class="sourceLineNo">792</span>         * Dirty metadata that are annotated by @Dirtiable. Call this when the dataset has been modified<a name="line.792"></a>
+<span class="sourceLineNo">793</span>         * @since 2.0<a name="line.793"></a>
+<span class="sourceLineNo">794</span>         */<a name="line.794"></a>
+<span class="sourceLineNo">795</span>        protected void dirtyMetadata() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                processAnnotatedMetadata(new MdsDirty(), true);<a name="line.796"></a>
+<span class="sourceLineNo">797</span>        }<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>        @SuppressWarnings("unchecked")<a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private void processAnnotatedMetadata(MetadatasetAnnotationOperation op, boolean throwException) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (metadata == null)<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return;<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>                for (Class&lt;? extends MetadataType&gt; c : metadata.keySet()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        for (MetadataType m : metadata.get(c)) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                if (m == null)<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                        continue;<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                Class&lt;? extends MetadataType&gt; mc = m.getClass();<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                do { // iterate over super-classes<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                                        processClass(op, m, mc, throwException);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                        Class&lt;?&gt; sclazz = mc.getSuperclass();<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                        if (!MetadataType.class.isAssignableFrom(sclazz))<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                                break;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        mc = (Class&lt;? extends MetadataType&gt;) sclazz;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                } while (true);<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                }<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        }<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>        @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.821"></a>
+<span class="sourceLineNo">822</span>        private static void processClass(MetadatasetAnnotationOperation op, MetadataType m, Class&lt;? extends MetadataType&gt; mc, boolean throwException) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                for (Field f : mc.getDeclaredFields()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        if (!f.isAnnotationPresent(op.getAnnClass()))<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                continue;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        try {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                f.setAccessible(true);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                Object o = f.get(m);<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                if (o == null)<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                        continue;<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                Object no = op.processField(f, o);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                if (no != o) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        f.set(m, no);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        continue;<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                }<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                Object r = null;<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                if (o instanceof ILazyDataset) {<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                        try {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                                f.set(m, op.run((ILazyDataset) o));<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        } catch (Exception e) {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                                logger.error("Problem processing " + o, e);<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                                if (!catchExceptions)<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                        throw e;<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                        }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                } else if (o.getClass().isArray()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        int l = Array.getLength(o);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        if (l &lt;= 0)<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                                continue;<a name="line.850"></a>
+<span class="sourceLineNo">851</span><a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                        for (int i = 0; r == null &amp;&amp; i &lt; l; i++) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                                r = Array.get(o, i);<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        }<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                        int n = op.getNewRank();<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                        if (r == null) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                                if (n &lt; 0 || n != l) { // all nulls be need to match rank as necessary<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                                                        f.set(m, Array.newInstance(o.getClass().getComponentType(), n &lt; 0 ? l : n));<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                                }<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                                continue;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                        }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                        if (n &lt; 0)<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                                n = l;<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                        Object narray = Array.newInstance(r.getClass(), n);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                        for (int i = 0, si = 0, di = 0; di &lt; n &amp;&amp; si &lt; l; i++) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                                int c = op.change(i);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                                if (c == 0) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                                        Array.set(narray, di++, processObject(op, Array.get(o, si++)));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                                } else if (c &gt; 0) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                        di += c; // add nulls by skipping forward in destination array<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                                } else if (c &lt; 0) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                                        si -= c; // remove dimensions by skipping forward in source array<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                        if (n == l) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                                for (int i = 0; i &lt; l; i++) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                                        Array.set(o, i, Array.get(narray, i));<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                                }<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        } else {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                                f.set(m, narray);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                } else if (o instanceof List&lt;?&gt;) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        List list = (List) o;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        int l = list.size();<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                        if (l &lt;= 0)<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                                                continue;<a name="line.886"></a>
+<span class="sourceLineNo">887</span><a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                        for (int i = 0; r == null &amp;&amp; i &lt; l; i++) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                                r = list.get(i);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        int n = op.getNewRank();<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                        if (r == null) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                                if (n &lt; 0 || n != l) { // all nulls be need to match rank as necessary<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                                        list.clear();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                        for (int i = 0, imax = n &lt; 0 ? l : n; i &lt; imax; i++) {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                                list.add(null);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                                continue;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                        if (n &lt; 0)<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                                n = l;<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                        Object narray = Array.newInstance(r.getClass(), n);<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                        for (int i = 0, si = 0, di = 0; i &lt; l &amp;&amp; si &lt; l; i++) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                                int c = op.change(i);<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                                if (c == 0) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                                        Array.set(narray, di++, processObject(op, list.get(si++)));<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                } else if (c &gt; 0) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                                        di += c; // add nulls by skipping forward in destination array<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                                } else if (c &lt; 0) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                                        si -= c; // remove dimensions by skipping forward in source array<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                        }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                        list.clear();<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                        for (int i = 0; i &lt; n; i++) {<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                                list.add(Array.get(narray, i));<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                        }<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                } else if (o instanceof Map&lt;?,?&gt;) {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        Map map = (Map) o;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                        for (Object k : map.keySet()) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                map.put(k, processObject(op, map.get(k)));<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                        } catch (Exception e) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                logger.error("Problem occurred when processing metadata of class {}: {}", mc.getCanonicalName(), e);<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                if (throwException)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                        throw new RuntimeException(e);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span><a name="line.932"></a>
+<span class="sourceLineNo">933</span>        @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.933"></a>
+<span class="sourceLineNo">934</span>        private static Object processObject(MetadatasetAnnotationOperation op, Object o) throws Exception {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                if (o == null)<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        return o;<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>                if (o instanceof ILazyDataset) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        try {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                return op.run((ILazyDataset) o);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        } catch (Exception e) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                logger.error("Problem processing " + o, e);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                if (!catchExceptions)<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        throw e;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                } else if (o.getClass().isArray()) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        int l = Array.getLength(o);<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                Array.set(o, i, processObject(op, Array.get(o, i)));<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                        }<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                } else if (o instanceof List&lt;?&gt;) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                        List list = (List) o;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                        for (int i = 0, imax = list.size(); i &lt; imax; i++) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                list.set(i, processObject(op, list.get(i)));<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        }<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                } else if (o instanceof Map&lt;?,?&gt;) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        Map map = (Map) o;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        for (Object k : map.keySet()) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                map.put(k, processObject(op, map.get(k)));<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                return o;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span>        protected void restoreMetadata(Map&lt;Class&lt;? extends MetadataType&gt;, List&lt;MetadataType&gt;&gt; oldMetadata) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                for (Class&lt;? extends MetadataType&gt; mc : oldMetadata.keySet()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                        metadata.put(mc, oldMetadata.get(mc));<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>        protected ILazyDataset createFromSerializable(Serializable blob, boolean keepLazy) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                ILazyDataset d = null;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                if (blob instanceof ILazyDataset) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        d = (ILazyDataset) blob;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                        if (d instanceof IDataset) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                Dataset ed = DatasetUtils.convertToDataset((IDataset) d);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                int is = ed.getElementsPerItem();<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                if (is != 1 &amp;&amp; is != getElementsPerItem()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                        throw new IllegalArgumentException("Dataset has incompatible number of elements with this dataset");<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                d = ed.cast(is == 1 ? Dataset.FLOAT64 : Dataset.ARRAYFLOAT64);<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        } else if (!keepLazy) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                final int is = getElementsPerItem();<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                try {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                        d = DatasetUtils.cast(d.getSlice(), is == 1 ? Dataset.FLOAT64 : Dataset.ARRAYFLOAT64);<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                } catch (DatasetException e) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        logger.error("Could not get data from lazy dataset", e);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                        return null;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                        }<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                } else {<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                        final int is = getElementsPerItem();<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        if (is == 1) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                d = DatasetFactory.createFromObject(DoubleDataset.class, blob);<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                        } else {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                try {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                        d = DatasetFactory.createFromObject(is, CompoundDoubleDataset.class, blob);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                } catch (IllegalArgumentException e) { // if only single value supplied try again<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                        d = DatasetFactory.createFromObject(DoubleDataset.class, blob);<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                }<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                        if (d.getSize() == getSize() &amp;&amp; !Arrays.equals(d.getShape(), shape)) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                d.setShape(shape.clone());<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                List&lt;int[]&gt; s = BroadcastUtils.broadcastShapesToMax(shape, d.getShape());<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                d.setShape(s.get(0));<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span><a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                return d;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span><a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        @Override<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        public void setErrors(Serializable errors) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                if (shape == null) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                        throw new IllegalArgumentException("Cannot set errors for null dataset");<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                }<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                if (errors == null) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                        clearMetadata(ErrorMetadata.class);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        return;<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                if (errors == this) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                        logger.warn("Ignoring setting error to itself as this will lead to infinite recursion");<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                        return;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span><a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                ILazyDataset errorData = createFromSerializable(errors, true);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                if (emd == null) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                        try {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                emd = MetadataFactory.createMetadata(ErrorMetadata.class);<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                setMetadata(emd);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                        } catch (MetadataException me) {<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                logger.error("Could not create metadata", me);<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                }<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                emd.setError(errorData);<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        protected ErrorMetadata getErrorMetadata() {<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                try {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        List&lt;ErrorMetadata&gt; el = getMetadata(ErrorMetadata.class);<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                        if (el != null &amp;&amp; !el.isEmpty()) {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                 return el.get(0);<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        }<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                } catch (Exception e) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                return null;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        @Override<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>        public ILazyDataset getErrors() {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                ErrorMetadata emd = getErrorMetadata();<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                return emd == null ? null : emd.getError();<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span><a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        @Override<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        public boolean hasErrors() {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                return LazyDatasetBase.this.getErrors() != null;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>        }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        /**<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>         * Check permutation axes<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>         * @param shape<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>         * @param axes<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>         * @return cleaned up axes or null if trivial<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>         */<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>        public static int[] checkPermutatedAxes(int[] shape, int... axes) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                int rank = shape == null ? 0 : shape.length;<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span><a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                if (axes == null || axes.length == 0) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        axes = new int[rank];<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                axes[i] = rank - 1 - i;<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                        }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                if (axes.length != rank) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                        logger.error("axis permutation has length {} that does not match dataset's rank {}", axes.length, rank);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                        throw new IllegalArgumentException("axis permutation does not match shape of dataset");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                }<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        <a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                // check all permutation values are within bounds<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                        axes[i] = ShapeUtils.checkAxis(rank, axes[i]);<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        <a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                // check for a valid permutation (is this an unnecessary restriction?)<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                int[] perm = axes.clone();<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                Arrays.sort(perm);<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span><a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        if (perm[i] != i) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                logger.error("axis permutation is not valid: it does not contain complete set of axes");<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                throw new IllegalArgumentException("axis permutation does not contain complete set of axes");<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                        }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span><a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                if (Arrays.equals(axes, perm))<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        return null; // signal identity or trivial permutation<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span><a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                return axes;<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>        }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>}<a name="line.1104"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html
new file mode 100644
index 0000000..595e692
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyDynamicDataset.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.eclipse.january.io.ILazyDynamicLoader;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.io.ILazyLoader;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>public class LazyDynamicDataset extends LazyDataset implements IDynamicDataset {<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        private static final long serialVersionUID = -6296506563932840938L;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        protected int[] maxShape;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        protected transient DataListenerDelegate eventDelegate; // this does not need to be serialised!<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        protected IDatasetChangeChecker checker;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private boolean stop;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        class PeriodicRunnable implements Runnable {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                long millis;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>                @Override<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                public void run() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                        while (!stop) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                                try {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                                        Thread.sleep(millis);<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                                } catch (InterruptedException e) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                                        logger.error("Something has interrupted this periodic runner!");<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                                        stop = true; // ends runner<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                                }<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                                if (checker == null || checker.check()) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                                        fireDataListeners();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                                }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                        }                               <a name="line.42"></a>
+<span class="sourceLineNo">043</span>                }<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        private transient PeriodicRunnable runner = new PeriodicRunnable();<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        private Thread checkingThread;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public LazyDynamicDataset(String name, int dtype, int elements, int[] shape, int[] maxShape, ILazyLoader loader) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                super(name, dtype, elements, shape, loader);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                if (maxShape == null) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        this.maxShape = shape.clone();<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        // check there are no unlimited dimensions in shape<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        int rank = shape.length;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        boolean isUnlimited = false;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                if (shape[i] == ILazyWriteableDataset.UNLIMITED) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                                        isUnlimited = true;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                                        break;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                }<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        if (isUnlimited) { // set all zeros<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                for (int i = 0; i &lt; rank; i++) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                        this.shape[i] = 0;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                        this.oShape[i] = 0;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                }<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                } else {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        this.maxShape = maxShape.clone();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this.eventDelegate = new DataListenerDelegate();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        @Override<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        public ILazyDataset getDataset() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                return this;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>        @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public void addDataListener(IDataListener l) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                eventDelegate.addDataListener(l);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public void removeDataListener(IDataListener l) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                eventDelegate.removeDataListener(l);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        public void fireDataListeners() {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                synchronized (eventDelegate) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        eventDelegate.fire(new DataEvent(name, shape));<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>        @Override<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        public boolean refreshShape() {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                if (loader instanceof ILazyDynamicLoader) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        return resize(((ILazyDynamicLoader)loader).refreshShape());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                return false;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        <a name="line.104"></a>
+<span class="sourceLineNo">105</span>        @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        public boolean resize(int... newShape) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                if (base != null) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        throw new UnsupportedOperationException("Changing the shape of a view is not allowed");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                int rank = shape.length;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                if (newShape.length != rank) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        throw new IllegalArgumentException("Rank of new shape must match current shape");<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>                if (Arrays.equals(shape, newShape)) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        return false;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>                if (maxShape != null) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                int m = maxShape[i];<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                if (m != -1 &amp;&amp; newShape[i] &gt; m) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                        throw new IllegalArgumentException("A dimension of new shape must not exceed maximum shape");<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                this.shape = newShape.clone();<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                this.oShape = this.shape;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                try {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        size = ShapeUtils.calcLongSize(shape);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } catch (IllegalArgumentException e) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        size = Long.MAX_VALUE; // this indicates that the entire dataset cannot be read in! <a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>                eventDelegate.fire(new DataEvent(name, shape));<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                return true;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        public int[] getMaxShape() {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                return maxShape;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>        @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        public void setMaxShape(int... maxShape) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                this.maxShape = maxShape == null ? shape.clone() : maxShape.clone();<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>                if (this.maxShape.length &gt; oShape.length) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        oShape = prependShapeWithOnes(this.maxShape.length, oShape);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (this.maxShape.length &gt; shape.length) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        shape = prependShapeWithOnes(this.maxShape.length, shape); // TODO this does not update any metadata<a name="line.152"></a>
+<span class="sourceLineNo">153</span>//                      setShapeInternal(prependShapeWithOnes(this.maxShape.length, shape));<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        private final static int[] prependShapeWithOnes(int rank, int[] shape) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                int[] nShape = new int[rank];<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                int excess = rank - shape.length;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                for (int i = 0; i &lt; excess; i++) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        nShape[i] = 1;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                for (int i = excess; i &lt; nShape.length; i++) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        nShape[i] = shape[i - excess];<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                return nShape;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>        @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public LazyDynamicDataset clone() {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                LazyDynamicDataset ret = new LazyDynamicDataset(new String(name), getDType(), getElementsPerItem(), <a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                oShape, maxShape, loader);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                ret.shape = shape;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                ret.size = size;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                ret.prepShape = prepShape;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                ret.postShape = postShape;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                ret.begSlice = begSlice;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                ret.delSlice = delSlice;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                ret.map = map;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                ret.base = base;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                ret.metadata = copyMetadata();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                ret.oMetadata = oMetadata;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                ret.eventDelegate = eventDelegate;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                return ret;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>        @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public synchronized void startUpdateChecker(int milliseconds, IDatasetChangeChecker checker) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                // stop any current checking threads<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                if (checkingThread != null) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        stop = true;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        if (checkingThread != null) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                checkingThread.interrupt();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                this.checker = checker;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                if (checker != null) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        checker.setDataset(this);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                if (milliseconds &lt;= 0) {  <a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        return;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>                runner.millis = milliseconds;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                checkingThread = new Thread(runner);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                checkingThread.setDaemon(true);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                checkingThread.setName("Checking thread with period " + milliseconds + "ms");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                checkingThread.start();<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>}<a name="line.210"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyMaths.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyMaths.html
new file mode 100644
index 0000000..b900dbf
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyMaths.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2017 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *    Tom Schoonjans - min and max methods<a name="line.11"></a>
+<span class="sourceLineNo">012</span> *******************************************************************************/<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>package org.eclipse.january.dataset;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.ArrayList;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Arrays;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.List;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.DatasetException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.slf4j.Logger;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.slf4j.LoggerFactory;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Mathematics class for lazy datasets<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public final class LazyMaths {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        private static final String DUPLICATE_AXIS_ERROR = "Axis arguments must be unique";<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private static final String TOO_MANY_AXES_ERROR = "Number of axes cannot be greater than the rank";<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private LazyMaths() {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * Setup the logging facilities<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        protected static final Logger logger = LoggerFactory.getLogger(LazyMaths.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        // TODO Uncomment this next line when minimum JDK is set to 1.8<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        // @FunctionalInterface<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        private static interface IMathOperation {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                void execute(IDataset a, IDataset b, Dataset c);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        private enum MathOperation implements IMathOperation {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                // TODO use lambdas here when moving to Java 8<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                MAX(new IMathOperation() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                        @Override<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                        public void execute(IDataset a, IDataset b, Dataset c) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                                Maths.maximum(a, b, c);<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                }, "maximum"),<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                MIN(new IMathOperation() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        @Override<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                        public void execute(IDataset a, IDataset b, Dataset c) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                Maths.minimum(a, b, c);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }, "minimum");<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>                private final IMathOperation operation;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                private final String operationName;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                private MathOperation(IMathOperation operation, String operationName) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        this.operation = operation;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        this.operationName = operationName;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                <a name="line.69"></a>
+<span class="sourceLineNo">070</span>                @Override<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                public void execute(IDataset a, IDataset b, Dataset c) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        operation.execute(a, b, c);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                 * @return the operationName<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                 */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                public String getOperationName() {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        return operationName;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        private static int[] requireSortedAxes(final ILazyDataset data, int[] axes) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                int rank = data.getRank();<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                if (axes == null || axes.length == 0) { // take to mean use all axes<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        axes = new int[rank];<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                axes[i] = i;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                } else {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        Arrays.sort(axes);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        if (rank &lt; axes.length) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                logger.error(TOO_MANY_AXES_ERROR);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                throw new IllegalArgumentException(TOO_MANY_AXES_ERROR);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                <a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        for (int axisIndex = 0 ; axisIndex &lt; axes.length ; axisIndex++) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                if (axes.length &gt; 1 &amp;&amp; axisIndex &gt; 0 &amp;&amp; axes[axisIndex] == axes[axisIndex-1]) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        logger.error(DUPLICATE_AXIS_ERROR);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                        throw new IllegalArgumentException(DUPLICATE_AXIS_ERROR);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                axes[axisIndex] = ShapeUtils.checkAxis(rank, axes[axisIndex]);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                return axes;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        private static Dataset maxmin(final ILazyDataset data, MathOperation operation, int...axes) throws DatasetException {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                axes = requireSortedAxes(data, axes);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                <a name="line.111"></a>
+<span class="sourceLineNo">112</span>                // we will be working here with the "ignoreAxes" instead to improve performance dramatically<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                int[] ignoreAxes = new int[data.getRank()-axes.length];<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                <a name="line.114"></a>
+<span class="sourceLineNo">115</span>                int k = 0;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                for (int i = 0 ; i &lt; data.getRank() ; i++) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        if (Arrays.binarySearch(axes, i) &lt; 0)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                ignoreAxes[k++] = i;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                <a name="line.120"></a>
+<span class="sourceLineNo">121</span>                final int[] oldShape = data.getShape();<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>                SliceND sa = new SliceND(oldShape);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                SliceNDIterator it = new SliceNDIterator(sa, ignoreAxes);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                Dataset result = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                <a name="line.126"></a>
+<span class="sourceLineNo">127</span>                while (it.hasNext()) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        SliceND currentSlice = it.getCurrentSlice();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        IDataset slice = data.getSlice(currentSlice);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        if (result == null)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                result = DatasetUtils.convertToDataset(slice);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        else<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                operation.execute(result, slice, result);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                if (result != null) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        result.setName(operation.getOperationName());<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        result.squeeze();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                return result;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>        /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * @param data<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * @param axes (can be negative). If null or empty then use all axes<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * @return maximum along axes in lazy dataset<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * @throws DatasetException<a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @since 2.1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public static Dataset max(final ILazyDataset data, int... axes) throws DatasetException {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                if (data instanceof Dataset) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        Dataset tmp = (Dataset) data;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        axes = requireSortedAxes(data, axes);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        for (int i = axes.length - 1; i &gt;= 0; i--) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                tmp = tmp.max(axes[i]);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        <a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        return tmp;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                return maxmin(data, MathOperation.MAX, axes);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        /**<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * @param data<a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @param axes (can be negative). If null or empty then use all axes<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * @return minimum along axes in lazy dataset<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @throws DatasetException<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * @since 2.1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         */<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        public static Dataset min(final ILazyDataset data, int... axes) throws DatasetException {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                if (data instanceof Dataset) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        Dataset tmp = (Dataset) data;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        axes = requireSortedAxes(data, axes);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        for (int i = axes.length - 1; i &gt;= 0; i--) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                tmp = tmp.min(axes[i]);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        <a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return tmp;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                return maxmin(data, MathOperation.MIN, axes);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>        /**<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * @param data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @param axis (can be negative)<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @return sum along axis in lazy dataset<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         * @throws DatasetException <a name="line.186"></a>
+<span class="sourceLineNo">187</span>         */<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        public static Dataset sum(final ILazyDataset data, int axis) throws DatasetException {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (data instanceof Dataset)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return ((Dataset) data).sum(axis);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                int[][] sliceInfo = new int[3][];<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                int[] shape = data.getShape();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                final Dataset result = prepareDataset(axis, shape, sliceInfo);<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>                final int[] start = sliceInfo[0];<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                final int[] stop = sliceInfo[1];<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                final int[] step = sliceInfo[2];<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                final int length = shape[axis];<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>                for (int i = 0; i &lt; length; i++) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        start[axis] = i;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        stop[axis] = i + 1;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        result.iadd(data.getSlice(start, stop, step));<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                result.setShape(ShapeUtils.squeezeShape(shape, axis));<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                return result;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        /**<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * @param data<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * @param ignoreAxes axes to ignore<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         * @return sum when given axes are ignored in lazy dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @throws DatasetException <a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @since 2.0<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public static Dataset sum(final ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                return sum(data, true, ignoreAxes);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        <a name="line.220"></a>
+<span class="sourceLineNo">221</span>        /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * @param data<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * @param ignore if true, ignore the provided axes, otherwise use only the provided axes <a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @param axes axes to ignore or accept, depending on the preceding flag<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * @return sum<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @throws DatasetException <a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * @since 2.0<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        public static Dataset sum(final ILazyDataset data, boolean ignore, int... axes) throws DatasetException {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                Arrays.sort(axes); // ensure they are properly sorted<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        <a name="line.231"></a>
+<span class="sourceLineNo">232</span>                ILazyDataset rv = data;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                <a name="line.233"></a>
+<span class="sourceLineNo">234</span>                if (ignore) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        List&lt;Integer&gt; goodAxes = new ArrayList&lt;&gt;();<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        for (int i = 0 ; i &lt; data.getRank() ; i++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                boolean found = false;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                for (int j = 0 ; j &lt; axes.length ; j++) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                        if (i == axes[j]) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                                found = true;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                                break;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                if (!found)             <a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                        goodAxes.add(i);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        for (int i = 0 ; i &lt; goodAxes.size() ; i++) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                rv = sum(rv, goodAxes.get(i) - i);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                } else {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        for (int i = 0 ; i &lt; axes.length ; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                rv = sum(rv, axes[i] - i);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return DatasetUtils.sliceAndConvertLazyDataset(rv);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        <a name="line.258"></a>
+<span class="sourceLineNo">259</span>        /**<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * @param data<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * @param axis (can be negative)<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * @return product along axis in lazy dataset<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @throws DatasetException <a name="line.263"></a>
+<span class="sourceLineNo">264</span>         */<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public static Dataset product(final ILazyDataset data, int axis) throws DatasetException {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                int[][] sliceInfo = new int[3][];<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                int[] shape = data.getShape();<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                final Dataset result = prepareDataset(axis, shape, sliceInfo);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                result.fill(1);<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                final int[] start = sliceInfo[0];<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                final int[] stop = sliceInfo[1];<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                final int[] step = sliceInfo[2];<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                final int length = shape[axis];<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>                for (int i = 0; i &lt; length; i++) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        start[axis] = i;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        stop[axis] = i + 1;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        result.imultiply(data.getSlice(start, stop, step));<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>                result.setShape(ShapeUtils.squeezeShape(shape, axis));<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return result;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param start<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param stop inclusive<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param data<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @param ignoreAxes<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return mean when given axes are ignored in lazy dataset<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @throws DatasetException <a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        public static Dataset mean(int start, int stop, ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                int[] shape = data.getShape();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                PositionIterator iter = new PositionIterator(shape, ignoreAxes);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                int[] pos = iter.getPos();<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                boolean[] omit = iter.getOmit();<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>                int rank = shape.length;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                int[] st = new int[rank];<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                Arrays.fill(st, 1);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                int[] end = new int[rank];<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>                RunningAverage av = null;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                int c = 0;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                while (iter.hasNext() &amp;&amp; c &lt; stop) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        if (c++ &lt; start) continue;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                end[i] = omit[i] ? shape[i] : pos[i] + 1;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                        IDataset ds = data.getSlice(pos, end, st);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        if (av == null) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                av = new RunningAverage(ds);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        } else {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                                av.update(ds);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>                return  av != null ? av.getCurrentAverage().squeeze() : null;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        <a name="line.322"></a>
+<span class="sourceLineNo">323</span>        public static Dataset mean(ILazyDataset data, int... ignoreAxes) throws DatasetException {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                return mean(0, Integer.MAX_VALUE -1 , data, ignoreAxes);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        private static Dataset prepareDataset(int axis, int[] shape, int[][] sliceInfo) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                int rank = shape.length;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                axis = ShapeUtils.checkAxis(rank, axis);<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>                sliceInfo[0] = new int[rank];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                sliceInfo[1] = shape.clone();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                sliceInfo[2] = new int[rank];<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                Arrays.fill(sliceInfo[2], 1);<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>                final int[] nshape = shape.clone();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                nshape[axis] = 1;<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>                return DatasetFactory.zeros(nshape);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        }<a name="line.340"></a>
+<span class="sourceLineNo">341</span>}<a name="line.341"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html
new file mode 100644
index 0000000..a3d2ca3
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LazyWriteableDataset.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.io.IOException;<a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.util.Arrays;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.DatasetException;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.eclipse.january.IMonitor;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.io.ILazyAsyncSaver;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.io.ILazySaver;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * Subclass of lazy dataset that allows setting slices<a name="line.21"></a>
+<span class="sourceLineNo">022</span> */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>public class LazyWriteableDataset extends LazyDynamicDataset implements ILazyWriteableDataset {<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private static final long serialVersionUID = -679846418938412535L;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private int[] chunks;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private ILazySaver saver;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private Object fillValue;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private boolean writeAsync;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Create a lazy dataset<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param name<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param dtype dataset type<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param elements<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param shape<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param maxShape<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @param chunks<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param saver<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public LazyWriteableDataset(String name, int dtype, int elements, int[] shape, int[] maxShape, int[] chunks, ILazySaver saver) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                super(name, dtype, elements, shape, maxShape, saver);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                this.chunks = chunks == null ? null : chunks.clone();<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                this.saver = saver;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>                size = ShapeUtils.calcLongSize(this.shape);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Create a lazy dataset<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param name<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param dtype dataset type<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param shape<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @param maxShape<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param chunks<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param saver<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public LazyWriteableDataset(String name, int dtype, int[] shape, int[] maxShape, int[] chunks, ILazySaver saver) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                this(name, dtype, 1, shape, maxShape, chunks, saver);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * Create a lazy dataset<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param name<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param clazz dataset element class<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @param elements<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param maxShape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param chunks<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param saver<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public LazyWriteableDataset(String name, Class&lt;?&gt; clazz, int elements, int[] shape, int[] maxShape, int[] chunks, ILazySaver saver) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this(name, DTypeUtils.getDTypeFromClass(clazz), elements, shape, maxShape, chunks, saver);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Create a lazy dataset<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param name<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param clazz dataset element class<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param shape<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param maxShape<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param chunks<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @param saver<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        public LazyWriteableDataset(String name, Class&lt;?&gt; clazz, int[] shape, int[] maxShape, int[] chunks, ILazySaver saver) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                this(name, DTypeUtils.getDTypeFromClass(clazz), 1, shape, maxShape, chunks, saver);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Create a lazy writeable dataset based on in-memory data (handy for testing)<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param dataset<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public static LazyWriteableDataset createLazyDataset(final Dataset dataset) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                return createLazyDataset(dataset, null);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * Create a lazy writeable dataset based on in-memory data (handy for testing)<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param dataset<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        public static LazyWriteableDataset createLazyDataset(final Dataset dataset, final int[] maxShape) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return new LazyWriteableDataset(dataset.getName(), dataset.getDType(), dataset.getElementsPerItem(), dataset.getShape(),<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                maxShape, null,<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                new ILazySaver() {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        private static final long serialVersionUID = ILazySaver.serialVersionUID;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        Dataset d = dataset;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        public boolean isFileReadable() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                                return true;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        @Override<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        public boolean isFileWriteable() {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                return true;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        public void initialize() throws IOException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        public Dataset getDataset(IMonitor mon, SliceND slice) throws IOException {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                return d.getSlice(mon, slice);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        @Override<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        public void setSlice(IMonitor mon, IDataset data, SliceND slice) throws IOException {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                if (slice.isExpanded()) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                                        Dataset od = d;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                                        d = DatasetFactory.zeros(od.getClass(), slice.getSourceShape());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                        d.setSlice(od, SliceND.createSlice(od, null, null));<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                d.setSlice(data, slice);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                });<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>        @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public int[] getChunking() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                return chunks;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>        @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public void setChunking(int... chunks) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                this.chunks = chunks == null ? null : chunks.clone();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>        @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public LazyWriteableDataset clone() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                LazyWriteableDataset ret = new LazyWriteableDataset(new String(name), getDType(), getElementsPerItem(), <a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                oShape, maxShape, chunks, saver);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                ret.shape = shape;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                ret.size = size;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                ret.prepShape = prepShape;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                ret.postShape = postShape;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                ret.begSlice = begSlice;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                ret.delSlice = delSlice;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                ret.map = map;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                ret.base = base;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                ret.metadata = copyMetadata();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                ret.oMetadata = oMetadata;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                ret.eventDelegate = eventDelegate;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                return ret;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>        @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        public LazyWriteableDataset getSliceView(int[] start, int[] stop, int[] step) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                return (LazyWriteableDataset) super.getSliceView(start, stop, step);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>        @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public LazyWriteableDataset getSliceView(Slice... slice) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return (LazyWriteableDataset) super.getSliceView(slice);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        @Override<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public LazyWriteableDataset getSliceView(SliceND slice) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return (LazyWriteableDataset) super.getSliceView(slice);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        @Override<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public LazyWriteableDataset getTransposedView(int... axes) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return (LazyWriteableDataset) super.getTransposedView(axes);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public void setWritingAsync(boolean async) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                writeAsync = async;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>        /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * Set a slice of the dataset<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * <a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param data<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @param slice an n-D slice<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @throws DatasetException <a name="line.196"></a>
+<span class="sourceLineNo">197</span>         */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        public void setSlice(IDataset data, SliceND slice) throws DatasetException {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                setSlice(null, data, slice);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>        @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        public void setSlice(IMonitor monitor, IDataset data, int[] start, int[] stop, int[] step) throws DatasetException {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                internalSetSlice(monitor, writeAsync, data, new SliceND(shape, maxShape, start, stop, step));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>        @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        public void setSlice(IMonitor monitor, IDataset data, SliceND slice) throws DatasetException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                internalSetSlice(monitor, writeAsync, data, slice);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>        @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        public void setSliceSync(IMonitor monitor, IDataset data, SliceND slice) throws DatasetException {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                internalSetSlice(monitor, false, data, slice);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>        private void internalSetSlice(IMonitor monitor, final boolean async, IDataset data, SliceND slice) throws DatasetException {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                int[] dshape = data instanceof Dataset ? ((Dataset) data).getShapeRef() : data.getShape();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                if (dshape.length == 0) { // fix zero-rank case<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        dshape = new int[] {1}; // FIXME remove<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                // if necessary, reshape the input data according to the shape of the slice<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                if (!Arrays.equals(slice.getShape(), dshape)) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                        data = data.getSliceView();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        data.setShape(slice.getShape());<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                SliceND nslice = calcTrueSlice(slice);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                data = transformInput(data);<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>                if (base != null) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        ((ILazyWriteableDataset) base).setSlice(monitor, data, nslice);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                } else {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        if (saver == null) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                throw new DatasetException("Cannot write to file as saver not defined!");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        try {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                if (async &amp;&amp; saver instanceof ILazyAsyncSaver) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                        ((ILazyAsyncSaver)saver).setSliceAsync(monitor, data, nslice);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                } else {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                        if (!saver.isFileWriteable()) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                                throw new DatasetException("Cannot write to file as it is not writeable!");<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                        saver.setSlice(monitor, data, nslice);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        } catch (IOException e) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                throw new DatasetException("Could not save dataset", e);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        if (!refreshShape()) { // send event as data has changed<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                eventDelegate.fire(new DataEvent(name, shape));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>        /**<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * Set saver (and also loader)<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * @param saver<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        public void setSaver(ILazySaver saver) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                this.saver = saver;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                this.loader = saver;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>        @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        protected SliceND createSlice(int[] nstart, int[] nstop, int[] nstep) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (base == null) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        return new SliceND(oShape, maxShape, nstart, nstop, nstep);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                return base.createSlice(nstart, nstop, nstep);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>        @Override<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        public Object getFillValue() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                return fillValue;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        }<a name="line.277"></a>
+<span class="sourceLineNo">278</span><a name="line.278"></a>
+<span class="sourceLineNo">279</span>        @Override<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        public void setFillValue(Object fill) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                fillValue = fill;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        }<a name="line.282"></a>
+<span class="sourceLineNo">283</span>}<a name="line.283"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
new file mode 100644
index 0000000..fed4cb6
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LinearAlgebra.NormOrder.html
@@ -0,0 +1,1311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.commons.math3.complex.Complex;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.linear.Array2DRowRealMatrix;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.linear.ArrayRealVector;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.math3.linear.CholeskyDecomposition;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.math3.linear.ConjugateGradient;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.linear.EigenDecomposition;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.math3.linear.LUDecomposition;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.math3.linear.MatrixUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.commons.math3.linear.QRDecomposition;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.math3.linear.RealLinearOperator;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.math3.linear.RealMatrix;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.commons.math3.linear.RealVector;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.commons.math3.linear.SingularValueDecomposition;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class LinearAlgebra {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private static final int CROSSOVERPOINT = 16; // point at which using slice iterators for inner loop is faster <a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * from the given axes in each dataset<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param a<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param b<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param axisa axis dimension in a to sum over (can be -ve)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param axisb axis dimension in b to sum over (can be -ve)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return tensor dot product<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int axisa, final int axisb) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                // this is slower for summing lengths &lt; ~15<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int[] ashape = a.getShapeRef();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int[] bshape = b.getShapeRef();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final int arank = ashape.length;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                final int brank = bshape.length;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                int aaxis = ShapeUtils.checkAxis(arank, axisa);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                if (ashape[aaxis] &lt; CROSSOVERPOINT) { // faster to use position iteration<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        return tensorDotProduct(a, b, new int[] {axisa}, new int[] {axisb});<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int baxis = ShapeUtils.checkAxis(brank, axisb);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                final boolean[] achoice = new boolean[arank];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                final boolean[] bchoice = new boolean[brank];<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                Arrays.fill(achoice, true);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                Arrays.fill(bchoice, true);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                achoice[aaxis] = false; // flag which axes not to iterate over<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                bchoice[baxis] = false;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                final boolean[] notachoice = new boolean[arank];<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final boolean[] notbchoice = new boolean[brank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                notachoice[aaxis] = true; // flag which axes to iterate over<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                notbchoice[baxis] = true;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                int drank = arank + brank - 2;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                int[] dshape = new int[drank];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                int d = 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        if (achoice[i])<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                dshape[d++] = ashape[i];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (bchoice[i])<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                dshape[d++] = bshape[i];<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                @SuppressWarnings("deprecation")<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                int l = 0;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                final int[] apos = ita.getPos();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                while (ita.hasNext()) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        final int[] bpos = itb.getPos();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        while (itb.hasNext()) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                SliceIterator itaa = a.getSliceIteratorFromAxes(apos, notachoice);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                SliceIterator itba = b.getSliceIteratorFromAxes(bpos, notbchoice);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                double sum = 0.0;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                double com = 0.0;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                while (itaa.hasNext() &amp;&amp; itba.hasNext()) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                        final double y = a.getElementDoubleAbs(itaa.index) * b.getElementDoubleAbs(itba.index) - com;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        final double t = sum + y;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        com = (t - sum) - y;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                        sum = t;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                data.setObjectAbs(l++, sum);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>                return data;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>        /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * from the given axes in each dataset<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param a<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param b<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param axisa axis dimensions in a to sum over (can be -ve)<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param axisb axis dimensions in b to sum over (can be -ve)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @return tensor dot product<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int[] axisa, final int[] axisb) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                if (axisa.length != axisb.length) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        throw new IllegalArgumentException("Numbers of summing axes must be same");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                final int[] ashape = a.getShapeRef();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                final int[] bshape = b.getShapeRef();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                final int arank = ashape.length;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                final int brank = bshape.length;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                final int[] aaxes = new int[axisa.length];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                final int[] baxes = new int[axisa.length];<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                for (int i = 0; i &lt; axisa.length; i++) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        aaxes[i] = ShapeUtils.checkAxis(arank, axisa[i]);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        int n = ShapeUtils.checkAxis(brank, axisb[i]);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        baxes[i] = n;<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        if (ashape[aaxes[i]] != bshape[n]) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                throw new IllegalArgumentException("Summing axes do not have matching lengths");<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>                final boolean[] achoice = new boolean[arank];<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                final boolean[] bchoice = new boolean[brank];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                Arrays.fill(achoice, true);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                Arrays.fill(bchoice, true);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                for (int i = 0; i &lt; aaxes.length; i++) { // flag which axes to iterate over<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        achoice[aaxes[i]] = false;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        bchoice[baxes[i]] = false;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int drank = arank + brank - 2*aaxes.length;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                int[] dshape = new int[drank];<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                int d = 0;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (achoice[i])<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                dshape[d++] = ashape[i];<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (bchoice[i])<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                dshape[d++] = bshape[i];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                @SuppressWarnings("deprecation")<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                int l = 0;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                final int[] apos = ita.getPos();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                while (ita.hasNext()) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        final int[] bpos = itb.getPos();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        while (itb.hasNext()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                double sum = 0.0;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                double com = 0.0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                apos[aaxes[aaxes.length - 1]] = -1;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                bpos[baxes[aaxes.length - 1]] = -1;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                while (true) { // step through summing axes<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                        int e = aaxes.length - 1;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                        for (; e &gt;= 0; e--) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                                int ai = aaxes[e];<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                                int bi = baxes[e];<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                                apos[ai]++;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                                bpos[bi]++;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                                if (apos[ai] == ashape[ai]) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                                        apos[ai] = 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                                        bpos[bi] = 0;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                                } else<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                                        break;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                        if (e == -1) break;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                        final double y = a.getDouble(apos) * b.getDouble(bpos) - com;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                        final double t = sum + y;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                        com = (t - sum) - y;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        sum = t;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                data.setObjectAbs(l++, sum);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                return data;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>        /**<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * Calculate the dot product of two datasets. When &lt;b&gt;b&lt;/b&gt; is a 1D dataset, the sum product over<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * the last axis of &lt;b&gt;a&lt;/b&gt; and &lt;b&gt;b&lt;/b&gt; is returned. Where &lt;b&gt;a&lt;/b&gt; is also a 1D dataset, a zero-rank dataset<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * is returned. If &lt;b&gt;b&lt;/b&gt; is 2D or higher, its second-to-last axis is used<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param a<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param b<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return dot product<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public static Dataset dotProduct(Dataset a, Dataset b) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                if (b.getRank() &lt; 2)<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        return tensorDotProduct(a, b, -1, 0);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                return tensorDotProduct(a, b, -1, -2);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * Calculate the outer product of two datasets<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param a<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @param b<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @return outer product<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public static Dataset outerProduct(Dataset a, Dataset b) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                int[] as = a.getShapeRef();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                int[] bs = b.getShapeRef();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                int rank = as.length + bs.length;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                int[] shape = new int[rank];<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                for (int i = 0; i &lt; as.length; i++) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        shape[i] = as[i];<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                for (int i = 0; i &lt; bs.length; i++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        shape[as.length + i] = bs[i];<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int isa = a.getElementsPerItem();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                int isb = b.getElementsPerItem();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                if (isa != 1 || isb != 1) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        throw new UnsupportedOperationException("Compound datasets not supported");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                @SuppressWarnings("deprecation")<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                Dataset o = DatasetFactory.zeros(shape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>                IndexIterator ita = a.getIterator();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                IndexIterator itb = b.getIterator();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int j = 0;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                while (ita.hasNext()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        double va = a.getElementDoubleAbs(ita.index);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        while (itb.hasNext()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                o.setObjectAbs(j++, va * b.getElementDoubleAbs(itb.index));<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        itb.reset();<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return o;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>        /**<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * possess last dimensions of length 2 or 3<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * @param a<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @param b<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * @return cross product<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        public static Dataset crossProduct(Dataset a, Dataset b) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                return crossProduct(a, b, -1, -1, -1);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>        /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * possess dimensions of length 2 or 3. The axis parameters can be negative to indicate<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * dimensions from the end of their shapes<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * @param a<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * @param b<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * @param axisA dimension to be used a vector (must have length of 2 or 3)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @param axisB dimension to be used a vector (must have length of 2 or 3)<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @param axisC dimension to assign as cross-product<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @return cross product<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        public static Dataset crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                final int rankA = a.getRank();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                final int rankB = b.getRank();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                if (rankA == 0 || rankB == 0) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        throw new IllegalArgumentException("Datasets must have one or more dimensions");<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                axisA = a.checkAxis(axisA);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                axisB = b.checkAxis(axisB);<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>                final int[] shapeA = a.getShape();<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                final int[] shapeB = b.getShape();<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                int la = shapeA[axisA];<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                int lb = shapeB[axisB];<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (Math.min(la,  lb) &lt; 2 || Math.max(la, lb) &gt; 3) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        throw new IllegalArgumentException("Chosen dimension of A &amp; B must be 2 or 3");<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>                if (Math.max(la,  lb) == 2) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        return crossProduct2D(a, b, axisA, axisB);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>                return crossProduct3D(a, b, axisA, axisB, axisC);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>        private static int[] removeAxisFromShape(int[] shape, int axis) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                int[] s = new int[shape.length - 1];<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                int i = 0;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                int j = 0;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                while (i &lt; axis) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        s[j++] = shape[i++];<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                i++;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                while (i &lt; shape.length) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        s[j++] = shape[i++];<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return s;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        // assume axes is in increasing order<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        private static int[] removeAxesFromShape(int[] shape, int... axes) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                int n = axes.length;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                int[] s = new int[shape.length - n];<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                int i = 0;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                int j = 0;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                for (int k = 0; k &lt; n; k++) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        int a = axes[k];<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        while (i &lt; a) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                s[j++] = shape[i++];<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        i++;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                while (i &lt; shape.length) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        s[j++] = shape[i++];<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                return s;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>        private static int[] addAxisToShape(int[] shape, int axis, int length) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                int[] s = new int[shape.length + 1];<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                int i = 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                int j = 0;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                while (i &lt; axis) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        s[j++] = shape[i++];<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                s[j++] = length;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                while (i &lt; shape.length) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        s[j++] = shape[i++];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return s;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>        private static Dataset crossProduct2D(Dataset a, Dataset b, int axisA, int axisB) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                // need to broadcast and omit given axes<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>                int[] maxShape = fullShapes.get(0);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                @SuppressWarnings("deprecation")<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                IndexIterator itc = c.getIterator();<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int[] pa = ita.getPos();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                final int[] pb = itb.getPos();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                while (itc.hasNext()) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        if (!ita.hasNext()) // TODO use broadcasting...<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                ita.reset();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        if (!itb.hasNext())<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                itb.reset();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        pa[axisA] = 0;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        pb[axisB] = 1;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                        double cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        pa[axisA] = 1;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        pb[axisB] = 0;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        c.setObjectAbs(itc.index, cv);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return c;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>        private static Dataset crossProduct3D(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                int[] maxShape = fullShapes.get(0);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                int rankC = maxShape.length + 1;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                axisC = ShapeUtils.checkAxis(rankC, axisC);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                maxShape = addAxisToShape(maxShape, axisC, 3);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                @SuppressWarnings("deprecation")<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                PositionIterator itc = c.getPositionIterator(axisC);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>                final int[] pa = ita.getPos();<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                final int[] pb = itb.getPos();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                final int[] pc = itc.getPos();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                final int la = a.getShapeRef()[axisA];<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                final int lb = b.getShapeRef()[axisB];<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>                if (la == 2) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        while (itc.hasNext()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                                        ita.reset();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                if (!itb.hasNext())<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                                        itb.reset();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                double cv;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                pa[axisA] = 1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                pb[axisB] = 2;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                pc[axisC] = 0;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                c.set(cv, pc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                pa[axisA] = 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                pb[axisB] = 2;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                pc[axisC] = 1;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                c.set(cv, pc);<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>                                pa[axisA] = 0;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                pb[axisB] = 1;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                pa[axisA] = 1;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                pb[axisB] = 0;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                pc[axisC] = 2;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                c.set(cv, pc);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                } else if (lb == 2) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        while (itc.hasNext()) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        ita.reset();<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                if (!itb.hasNext())<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                        itb.reset();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                double cv;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                pa[axisA] = 2;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                pb[axisB] = 1;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                pc[axisC] = 0;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                                c.set(cv, pc);<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                pa[axisA] = 2;<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                                pb[axisB] = 0;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                pc[axisC] = 1;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                c.set(cv, pc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>                                pa[axisA] = 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                                pb[axisB] = 1;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                pa[axisA] = 1;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                pb[axisB] = 0;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                pc[axisC] = 2;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                c.set(cv, pc);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        <a name="line.459"></a>
+<span class="sourceLineNo">460</span>                } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        while (itc.hasNext()) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                        ita.reset();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                if (!itb.hasNext())<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                        itb.reset();<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                double cv;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                pa[axisA] = 1;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                pb[axisB] = 2;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                pa[axisA] = 2;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                pb[axisB] = 1;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                                pc[axisC] = 0;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                                c.set(cv, pc);<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                pa[axisA] = 2;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                pb[axisB] = 0;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                                pa[axisA] = 0;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                pb[axisB] = 2;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                                pc[axisC] = 1;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                c.set(cv, pc);<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                pa[axisA] = 0;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                pb[axisB] = 1;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                                pa[axisA] = 1;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                pb[axisB] = 0;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                pc[axisC] = 2;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                c.set(cv, pc);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return c;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Raise dataset to given power by matrix multiplication<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * @param a<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @param n power<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @return a ** n<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         */<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public static Dataset power(Dataset a, int n) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                if (n &lt; 0) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        return createDataset(lud.getSolver().getInverse().power(-n));<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                Dataset p = createDataset(createRealMatrix(a).power(n));<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                if (!a.hasFloatingPointElements())<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return p.cast(a.getDType());<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return p;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        /**<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         * Create the Kronecker product as defined by <a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * where kn = sn * in + jn for n = 0...N and s is shape of b<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         * @param a<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param b<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         * @return Kronecker product of a and b<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         */<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public static Dataset kroneckerProduct(Dataset a, Dataset b) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                if (a.getElementsPerItem() != 1 || b.getElementsPerItem() != 1) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        throw new UnsupportedOperationException("Compound datasets (including complex ones) are not currently supported");<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                int ar = a.getRank();<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                int br = b.getRank();<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                int[] aShape;<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                int[] bShape;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                aShape = a.getShapeRef();<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                bShape = b.getShapeRef();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                int r = ar;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                // pre-pad if ranks are not same<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                if (ar &lt; br) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        r = br;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        int[] shape = new int[br];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        int j = 0;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        for (int i = ar; i &lt; br; i++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                shape[j++] = 1;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        int i = 0;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        while (j &lt; br) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                shape[j++] = aShape[i++];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        a = a.reshape(shape);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        aShape = shape;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                } else if (ar &gt; br) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        int[] shape = new int[ar];<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        int j = 0;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        for (int i = br; i &lt; ar; i++) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                shape[j++] = 1;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                        }<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        int i = 0;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        while (j &lt; ar) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                shape[j++] = bShape[i++];<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                        b = b.reshape(shape);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                        bShape = shape;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>                int[] nShape = new int[r];<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                for (int i = 0; i &lt; r; i++) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                        nShape[i] = aShape[i] * bShape[i];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                @SuppressWarnings("deprecation")<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                Dataset kron = DatasetFactory.zeros(nShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                IndexIterator ita = a.getIterator(true);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                IndexIterator itb = b.getIterator(true);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                int[] pa = ita.getPos();<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                int[] pb = itb.getPos();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                int[] off = new int[1];<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                int[] stride = AbstractDataset.createStrides(1, nShape, null, 0, off);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                if (kron.getDType() == Dataset.INT64) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        while (ita.hasNext()) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                long av = a.getElementLongAbs(ita.index);<a name="line.576"></a>
+<span class="sourceLineNo">577</span><a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                int ka = 0; <a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                itb.reset();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                while (itb.hasNext()) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                        long bv = b.getElementLongAbs(itb.index);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                        int kb = ka;<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                                kb += stride[i] * pb[i];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                        }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                        kron.setObjectAbs(kb, av * bv);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                } else {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        while (ita.hasNext()) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                double av = a.getElementDoubleAbs(ita.index);<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                int ka = 0; <a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                itb.reset();<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                while (itb.hasNext()) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        double bv = b.getElementLongAbs(itb.index);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                        int kb = ka;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                                kb += stride[i] * pb[i];<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                        }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                        kron.setObjectAbs(kb, av * bv);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return kron;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * Calculate trace of dataset - sum of values over 1st axis and 2nd axis<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param a<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return trace of dataset<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        public static Dataset trace(Dataset a) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                return trace(a, 0, 0, 1);<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        }<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>        /**<a name="line.624"></a>
+<span class="sourceLineNo">625</span>         * Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset<a name="line.625"></a>
+<span class="sourceLineNo">626</span>         * @param a<a name="line.626"></a>
+<span class="sourceLineNo">627</span>         * @param offset<a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * @param axis1<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @param axis2<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @return trace of dataset<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static Dataset trace(Dataset a, int offset, int axis1, int axis2) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                int[] shape = a.getShapeRef();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] axes = new int[] { a.checkAxis(axis1), a.checkAxis(axis2) };<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                Arrays.sort(axes);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                int is = a.getElementsPerItem();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                @SuppressWarnings("deprecation")<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                Dataset trace = DatasetFactory.zeros(is, removeAxesFromShape(shape, axes), a.getDType());<a name="line.638"></a>
+<span class="sourceLineNo">639</span><a name="line.639"></a>
+<span class="sourceLineNo">640</span>                int am = axes[0];<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                int mmax = shape[am];<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                int an = axes[1];<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                int nmax = shape[an];<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                PositionIterator it = new PositionIterator(shape, axes);<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int[] pos = it.getPos();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                int i = 0;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int mmin;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int nmin;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                if (offset &gt;= 0) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        mmin = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        nmin = offset;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                } else {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        mmin = -offset;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        nmin = 0;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                }<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                if (is == 1) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        if (a.getDType() == Dataset.INT64) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                while (it.hasNext()) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        int m = mmin;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                        int n = nmin;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        long s = 0;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                pos[am] = m++;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                pos[an] = n++;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                s += a.getLong(pos);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                        trace.setObjectAbs(i++, s);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        } else {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                while (it.hasNext()) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        int m = mmin;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        int n = nmin;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                        double s = 0;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                                pos[am] = m++;<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                                pos[an] = n++;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                                s += a.getDouble(pos);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        trace.setObjectAbs(i++, s);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                } else {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        AbstractCompoundDataset ca = (AbstractCompoundDataset) a;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        if (ca instanceof CompoundLongDataset) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                long[] t = new long[is];<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                long[] s = new long[is];<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                while (it.hasNext()) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                        int m = mmin;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        int n = nmin;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                        Arrays.fill(s, 0);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                                pos[am] = m++;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                                pos[an] = n++;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                ((CompoundLongDataset)ca).getAbs(ca.get1DIndex(pos), t);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                                        s[k] += t[k];<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                                }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                        trace.setObjectAbs(i++, s);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        } else {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                double[] t = new double[is];<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                double[] s = new double[is];<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                while (it.hasNext()) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                        int m = mmin;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        int n = nmin;<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        Arrays.fill(s, 0);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                                pos[am] = m++;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                                pos[an] = n++;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                                ca.getDoubleArray(t, pos);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                                        s[k] += t[k];<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                                }<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                        }<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                        trace.setObjectAbs(i++, s);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>                return trace;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>        }<a name="line.722"></a>
+<span class="sourceLineNo">723</span><a name="line.723"></a>
+<span class="sourceLineNo">724</span>        /**<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         * Order value for norm<a name="line.725"></a>
+<span class="sourceLineNo">726</span>         */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public enum NormOrder {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                /**<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                 * 2-norm for vectors and Frobenius for matrices<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                 */<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                DEFAULT,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                /**<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                 * Frobenius (not allowed for vectors)<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                 */<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                FROBENIUS,<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                /**<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 * Zero-order (not allowed for matrices)<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 */<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                ZERO,<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 * Positive infinity<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 */<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                POS_INFINITY,<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                /**<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                 * Negative infinity<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                 */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                NEG_INFINITY;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>        /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @param a<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         * @return norm of dataset<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>        public static double norm(Dataset a) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                return norm(a, NormOrder.DEFAULT);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        }<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>        /**<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * @param a<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * @param order<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @return norm of dataset<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public static double norm(Dataset a, NormOrder order) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                int r = a.getRank();<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                if (r == 1) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        return vectorNorm(a, order);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else if (r == 2) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        return matrixNorm(a, order);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                }<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<a name="line.770"></a>
+<span class="sourceLineNo">771</span>        }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>        private static double vectorNorm(Dataset a, NormOrder order) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                double n;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                IndexIterator it;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                switch (order) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                case FROBENIUS:<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        throw new IllegalArgumentException("Not allowed for vectors");<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                case NEG_INFINITY:<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                case POS_INFINITY:<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        it = a.getIterator();<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        if (order == NormOrder.POS_INFINITY) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                n = Double.NEGATIVE_INFINITY;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                if (a.isComplex()) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        while (it.hasNext()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                n = Math.max(n, v);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                } else {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                        while (it.hasNext()) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                                n = Math.max(n, v);<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        }<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                }<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        } else {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                n = Double.POSITIVE_INFINITY;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                if (a.isComplex()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        while (it.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                                n = Math.min(n, v);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                } else {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                        while (it.hasNext()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                                n = Math.min(n, v);<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        }<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                        }<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        break;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                case ZERO:<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        it = a.getIterator();<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        n = 0;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (a.isComplex()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        if (!((Complex) a.getObjectAbs(it.index)).equals(Complex.ZERO))<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                n++;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        } else {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                while (it.hasNext()) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                        if (a.getElementBooleanAbs(it.index))<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                                n++;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        }<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        <a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        break;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                default:<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        n = vectorNorm(a, 2);<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        break;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return n;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>        private static double matrixNorm(Dataset a, NormOrder order) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                double n;<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                IndexIterator it;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                switch (order) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                case NEG_INFINITY:<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                case POS_INFINITY:<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        n = maxMinMatrixNorm(a, 1, order == NormOrder.POS_INFINITY);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        break;<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                case ZERO:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        throw new IllegalArgumentException("Not allowed for matrices");<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                default:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                case FROBENIUS:<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        it = a.getIterator();<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        n = 0;<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                        if (a.isComplex()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (it.hasNext()) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                        n += v*v;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                }<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        } else {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                while (it.hasNext()) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        double v = a.getElementDoubleAbs(it.index);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                        n += v*v;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        n = Math.sqrt(n);<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        break;<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                }<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                return n;<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        /**<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @param a<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         * @param p<a name="line.866"></a>
+<span class="sourceLineNo">867</span>         * @return p-norm of dataset<a name="line.867"></a>
+<span class="sourceLineNo">868</span>         */<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        public static double norm(Dataset a, final double p) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                if (p == 0) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        return norm(a, NormOrder.ZERO);<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                int r = a.getRank();<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                if (r == 1) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                        return vectorNorm(a, p);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                } else if (r == 2) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                        return matrixNorm(a, p);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                }<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<a name="line.879"></a>
+<span class="sourceLineNo">880</span>        }<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>        private static double vectorNorm(Dataset a, final double p) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                IndexIterator it = a.getIterator();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                double n = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                if (a.isComplex()) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        while (it.hasNext()) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                if (p == 2) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                        v *= v;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                } else if (p != 1) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        v = Math.pow(v, p);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                }<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                n += v;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        while (it.hasNext()) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                double v = a.getElementDoubleAbs(it.index);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (p == 1) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        v = Math.abs(v);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                } else if (p == 2) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                        v *= v;<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                } else {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                        v = Math.pow(Math.abs(v), p);<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                }<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                n += v;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                return Math.pow(n, 1./p);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>        private static double matrixNorm(Dataset a, final double p) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                double n;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (Math.abs(p) == 1) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        n = maxMinMatrixNorm(a, 0, p &gt; 0);<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                } else if (Math.abs(p) == 2) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        double[] s = calcSingularValues(a);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        n = p &gt; 0 ? s[0] : s[s.length - 1];<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                } else {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        throw new IllegalArgumentException("Order not allowed");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return n;<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        private static double maxMinMatrixNorm(Dataset a, int d, boolean max) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                double n;<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                IndexIterator it;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                int[] pos;<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                int l;<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                it = a.getPositionIterator(d);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                pos = it.getPos();<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                l = a.getShapeRef()[d];<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                if (max) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        n = Double.NEGATIVE_INFINITY;<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        if (a.isComplex()) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                while (it.hasNext()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                                pos[d] = i;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        pos[d] = 0;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        n = Math.max(n, v);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        } else {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                while (it.hasNext()) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                pos[d] = i;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        pos[d] = 0;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                        n = Math.max(n, v);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        }<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                } else {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        n = Double.POSITIVE_INFINITY;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        if (a.isComplex()) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                while (it.hasNext()) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                                pos[d] = i;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        pos[d] = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        n = Math.min(n, v);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        } else {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                while (it.hasNext()) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                                pos[d] = i;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                        pos[d] = 0;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        n = Math.min(n, v);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                }<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                return n;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>        }<a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>        /**<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * @param a<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * @return array of singular values<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         */<a name="line.986"></a>
+<span class="sourceLineNo">987</span>        public static double[] calcSingularValues(Dataset a) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                return svd.getSingularValues();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        /**<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * Calculate singular value decomposition A = U S V^T<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * @param a<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @return array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         */<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        public static Dataset[] calcSingularValueDecomposition(Dataset a) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                return new Dataset[] {createDataset(svd.getU()), DatasetFactory.createFromObject(svd.getSingularValues()),<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                createDataset(svd.getV())};<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        /**<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * Calculate (Moore-Penrose) pseudo-inverse<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * @param a<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         * @return pseudo-inverse<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         */<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        public static Dataset calcPseudoInverse(Dataset a) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return createDataset(svd.getSolver().getInverse());<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        /**<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         * Calculate matrix rank by singular value decomposition method<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>         * @param a<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>         * @return effective numerical rank of matrix<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>         */<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        public static int calcMatrixRank(Dataset a) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                return svd.getRank();<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        /**<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * Calculate condition number of matrix by singular value decomposition method<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @param a<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * @return condition number<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         */<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public static double calcConditionNumber(Dataset a) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                return svd.getConditionNumber();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        }<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span><a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>        /**<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param a<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @return determinant of dataset<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         */<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        public static double calcDeterminant(Dataset a) {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return evd.getDeterminant();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * @param a<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * @return dataset of eigenvalues (can be double or complex double)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         */<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        public static Dataset calcEigenvalues(Dataset a) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        return DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                return DatasetFactory.createFromObject(rev);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        /**<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * Calculate eigen-decomposition A = V D V^T<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @param a<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @return array of D eigenvalues (can be double or complex double) and V eigenvectors<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         */<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        public static Dataset[] calcEigenDecomposition(Dataset a) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                Dataset[] results = new Dataset[2];<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        results[0] = DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                } else {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        results[0] = DatasetFactory.createFromObject(rev);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                results[1] = createDataset(evd.getV());<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                return results;<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>        }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>        /**<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         * Calculate QR decomposition A = Q R<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @param a<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @return array of Q and R<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        public static Dataset[] calcQRDecomposition(Dataset a) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                QRDecomposition qrd = new QRDecomposition(createRealMatrix(a));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                return new Dataset[] {createDataset(qrd.getQT()).getTransposedView(), createDataset(qrd.getR())};<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span><a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        /**<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>         * Calculate LU decomposition A = P^-1 L U<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @param a<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         * @return array of L, U and P<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>         */<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>        public static Dataset[] calcLUDecomposition(Dataset a) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                return new Dataset[] {createDataset(lud.getL()), createDataset(lud.getU()),<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                createDataset(lud.getP())};<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>        }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span><a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>        /**<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>         * Calculate inverse of square dataset<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>         * @param a<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * @return inverse<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         */<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        public static Dataset calcInverse(Dataset a) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                return createDataset(lud.getSolver().getInverse());<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>        }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span><a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>        /**<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * Solve linear matrix equation A x = v<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param a<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @param v<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         * @return x<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>         */<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public static Dataset solve(Dataset a, Dataset v) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (v.getRank() == 1) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        RealVector x = createRealVector(v);<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        return createDataset(lud.getSolver().solve(x));<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                RealMatrix x = createRealMatrix(v);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                return createDataset(lud.getSolver().solve(x));<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        <a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>        /**<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * Solve least squares matrix equation A x = v by SVD<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         * @param a<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>         * @param v<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>         * @return x<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>         */<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>        public static Dataset solveSVD(Dataset a, Dataset v) {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                if (v.getRank() == 1) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        RealVector x = createRealVector(v);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                        return createDataset(svd.getSolver().solve(x));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                }<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                RealMatrix x = createRealMatrix(v);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                return createDataset(svd.getSolver().solve(x));<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>        <a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        /**<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>         * Calculate Cholesky decomposition A = L L^T<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * @param a<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @return L<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         */<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        public static Dataset calcCholeskyDecomposition(Dataset a) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                CholeskyDecomposition cd = new CholeskyDecomposition(createRealMatrix(a));<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                return createDataset(cd.getL());<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        /**<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; ||v|| with maximum of 100 iterations<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * @param a<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * @param v<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>         */<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                return calcConjugateGradient(a, v, 100, 1);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; delta ||v||<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>         * @param a<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>         * @param v<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         * @param maxIterations<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>         * @param delta parameter used by stopping criterion<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>         */<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                ConjugateGradient cg = new ConjugateGradient(maxIterations, delta, false);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                return createDataset(cg.solve((RealLinearOperator) createRealMatrix(a), createRealVector(v)));<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>        }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span><a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>        private static RealMatrix createRealMatrix(Dataset a) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                if (a.getRank() != 2) {<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new IllegalArgumentException("Dataset must be rank 2");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                int[] shape = a.getShapeRef();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                IndexIterator it = a.getIterator(true);<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                int[] pos = it.getPos();<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                RealMatrix m = MatrixUtils.createRealMatrix(shape[0], shape[1]);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                while (it.hasNext()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                        m.setEntry(pos[0], pos[1], a.getElementDoubleAbs(it.index));<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                return m;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        private static RealVector createRealVector(Dataset a) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                if (a.getRank() != 1) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        throw new IllegalArgumentException("Dataset must be rank 1");<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                }<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                int size = a.getSize();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                IndexIterator it = a.getIterator(true);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                int[] pos = it.getPos();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                RealVector m = new ArrayRealVector(size);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                while (it.hasNext()) {<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        m.setEntry(pos[0], a.getElementDoubleAbs(it.index));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                return m;<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>        private static Dataset createDataset(RealVector v) {<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, v.getDimension());<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                int size = r.getSize();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                if (v instanceof ArrayRealVector) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        double[] data = ((ArrayRealVector) v).getDataRef();<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                r.setAbs(i, data[i]);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                } else {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                r.setAbs(i, v.getEntry(i));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                return r;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>        }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>        private static Dataset createDataset(RealMatrix m) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, m.getRowDimension(), m.getColumnDimension());<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                if (m instanceof Array2DRowRealMatrix) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        double[][] data = ((Array2DRowRealMatrix) m).getDataRef();<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        IndexIterator it = r.getIterator(true);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        int[] pos = it.getPos();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        while (it.hasNext()) {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                r.setAbs(it.index, data[pos[0]][pos[1]]);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                        IndexIterator it = r.getIterator(true);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        int[] pos = it.getPos();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        while (it.hasNext()) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                r.setAbs(it.index, m.getEntry(pos[0], pos[1]));<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                return r;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>}<a name="line.1239"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LinearAlgebra.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LinearAlgebra.html
new file mode 100644
index 0000000..fed4cb6
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LinearAlgebra.html
@@ -0,0 +1,1311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.commons.math3.complex.Complex;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.linear.Array2DRowRealMatrix;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.linear.ArrayRealVector;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.math3.linear.CholeskyDecomposition;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.commons.math3.linear.ConjugateGradient;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.linear.EigenDecomposition;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.math3.linear.LUDecomposition;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.math3.linear.MatrixUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.commons.math3.linear.QRDecomposition;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.commons.math3.linear.RealLinearOperator;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.math3.linear.RealMatrix;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.commons.math3.linear.RealVector;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.commons.math3.linear.SingularValueDecomposition;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class LinearAlgebra {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private static final int CROSSOVERPOINT = 16; // point at which using slice iterators for inner loop is faster <a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * from the given axes in each dataset<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param a<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param b<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param axisa axis dimension in a to sum over (can be -ve)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param axisb axis dimension in b to sum over (can be -ve)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return tensor dot product<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int axisa, final int axisb) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                // this is slower for summing lengths &lt; ~15<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final int[] ashape = a.getShapeRef();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                final int[] bshape = b.getShapeRef();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                final int arank = ashape.length;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                final int brank = bshape.length;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                int aaxis = ShapeUtils.checkAxis(arank, axisa);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                if (ashape[aaxis] &lt; CROSSOVERPOINT) { // faster to use position iteration<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        return tensorDotProduct(a, b, new int[] {axisa}, new int[] {axisb});<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                int baxis = ShapeUtils.checkAxis(brank, axisb);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>                final boolean[] achoice = new boolean[arank];<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                final boolean[] bchoice = new boolean[brank];<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                Arrays.fill(achoice, true);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                Arrays.fill(bchoice, true);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                achoice[aaxis] = false; // flag which axes not to iterate over<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                bchoice[baxis] = false;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                final boolean[] notachoice = new boolean[arank];<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                final boolean[] notbchoice = new boolean[brank];<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                notachoice[aaxis] = true; // flag which axes to iterate over<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                notbchoice[baxis] = true;<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                int drank = arank + brank - 2;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                int[] dshape = new int[drank];<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                int d = 0;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        if (achoice[i])<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                dshape[d++] = ashape[i];<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        if (bchoice[i])<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                dshape[d++] = bshape[i];<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                @SuppressWarnings("deprecation")<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                int l = 0;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                final int[] apos = ita.getPos();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                while (ita.hasNext()) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        final int[] bpos = itb.getPos();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        while (itb.hasNext()) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                SliceIterator itaa = a.getSliceIteratorFromAxes(apos, notachoice);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                                SliceIterator itba = b.getSliceIteratorFromAxes(bpos, notbchoice);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                double sum = 0.0;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                                double com = 0.0;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                                while (itaa.hasNext() &amp;&amp; itba.hasNext()) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                                        final double y = a.getElementDoubleAbs(itaa.index) * b.getElementDoubleAbs(itba.index) - com;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        final double t = sum + y;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        com = (t - sum) - y;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                        sum = t;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                data.setObjectAbs(l++, sum);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>                return data;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>        /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * Calculate the tensor dot product over given axes. This is the sum of products of elements selected<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * from the given axes in each dataset<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param a<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param b<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param axisa axis dimensions in a to sum over (can be -ve)<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param axisb axis dimensions in b to sum over (can be -ve)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @return tensor dot product<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        public static Dataset tensorDotProduct(final Dataset a, final Dataset b, final int[] axisa, final int[] axisb) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                if (axisa.length != axisb.length) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        throw new IllegalArgumentException("Numbers of summing axes must be same");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                final int[] ashape = a.getShapeRef();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                final int[] bshape = b.getShapeRef();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                final int arank = ashape.length;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                final int brank = bshape.length;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                final int[] aaxes = new int[axisa.length];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                final int[] baxes = new int[axisa.length];<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                for (int i = 0; i &lt; axisa.length; i++) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        aaxes[i] = ShapeUtils.checkAxis(arank, axisa[i]);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        int n = ShapeUtils.checkAxis(brank, axisb[i]);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        baxes[i] = n;<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        if (ashape[aaxes[i]] != bshape[n]) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                throw new IllegalArgumentException("Summing axes do not have matching lengths");<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>                final boolean[] achoice = new boolean[arank];<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                final boolean[] bchoice = new boolean[brank];<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                Arrays.fill(achoice, true);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                Arrays.fill(bchoice, true);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                for (int i = 0; i &lt; aaxes.length; i++) { // flag which axes to iterate over<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        achoice[aaxes[i]] = false;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        bchoice[baxes[i]] = false;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>                int drank = arank + brank - 2*aaxes.length;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                int[] dshape = new int[drank];<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                int d = 0;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; i &lt; arank; i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        if (achoice[i])<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                dshape[d++] = ashape[i];<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                for (int i = 0; i &lt; brank; i++) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        if (bchoice[i])<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                dshape[d++] = bshape[i];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                int dtype = DTypeUtils.getBestDType(a.getDType(), b.getDType());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                @SuppressWarnings("deprecation")<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                Dataset data = DatasetFactory.zeros(dshape, dtype);<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                SliceIterator ita = a.getSliceIteratorFromAxes(null, achoice);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                int l = 0;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                final int[] apos = ita.getPos();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                while (ita.hasNext()) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        SliceIterator itb = b.getSliceIteratorFromAxes(null, bchoice);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        final int[] bpos = itb.getPos();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        while (itb.hasNext()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                double sum = 0.0;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                double com = 0.0;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                apos[aaxes[aaxes.length - 1]] = -1;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                bpos[baxes[aaxes.length - 1]] = -1;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                while (true) { // step through summing axes<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                        int e = aaxes.length - 1;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                        for (; e &gt;= 0; e--) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                                int ai = aaxes[e];<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                                int bi = baxes[e];<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                                apos[ai]++;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                                bpos[bi]++;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                                if (apos[ai] == ashape[ai]) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                                        apos[ai] = 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                                        bpos[bi] = 0;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                                } else<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                                        break;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                        if (e == -1) break;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                        final double y = a.getDouble(apos) * b.getDouble(bpos) - com;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                        final double t = sum + y;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                        com = (t - sum) - y;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        sum = t;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                data.setObjectAbs(l++, sum);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                return data;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>        /**<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * Calculate the dot product of two datasets. When &lt;b&gt;b&lt;/b&gt; is a 1D dataset, the sum product over<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         * the last axis of &lt;b&gt;a&lt;/b&gt; and &lt;b&gt;b&lt;/b&gt; is returned. Where &lt;b&gt;a&lt;/b&gt; is also a 1D dataset, a zero-rank dataset<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * is returned. If &lt;b&gt;b&lt;/b&gt; is 2D or higher, its second-to-last axis is used<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param a<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param b<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return dot product<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public static Dataset dotProduct(Dataset a, Dataset b) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                if (b.getRank() &lt; 2)<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        return tensorDotProduct(a, b, -1, 0);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                return tensorDotProduct(a, b, -1, -2);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * Calculate the outer product of two datasets<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param a<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @param b<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @return outer product<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public static Dataset outerProduct(Dataset a, Dataset b) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                int[] as = a.getShapeRef();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                int[] bs = b.getShapeRef();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                int rank = as.length + bs.length;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                int[] shape = new int[rank];<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                for (int i = 0; i &lt; as.length; i++) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        shape[i] = as[i];<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                for (int i = 0; i &lt; bs.length; i++) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        shape[as.length + i] = bs[i];<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                int isa = a.getElementsPerItem();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                int isb = b.getElementsPerItem();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                if (isa != 1 || isb != 1) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        throw new UnsupportedOperationException("Compound datasets not supported");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                @SuppressWarnings("deprecation")<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                Dataset o = DatasetFactory.zeros(shape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>                IndexIterator ita = a.getIterator();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                IndexIterator itb = b.getIterator();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int j = 0;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                while (ita.hasNext()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        double va = a.getElementDoubleAbs(ita.index);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        while (itb.hasNext()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                o.setObjectAbs(j++, va * b.getElementDoubleAbs(itb.index));<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        itb.reset();<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return o;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>        /**<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * possess last dimensions of length 2 or 3<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * @param a<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @param b<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         * @return cross product<a name="line.258"></a>
+<span class="sourceLineNo">259</span>         */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        public static Dataset crossProduct(Dataset a, Dataset b) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                return crossProduct(a, b, -1, -1, -1);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>        /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * Calculate the cross product of two datasets. Datasets must be broadcastable and<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         * possess dimensions of length 2 or 3. The axis parameters can be negative to indicate<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         * dimensions from the end of their shapes<a name="line.267"></a>
+<span class="sourceLineNo">268</span>         * @param a<a name="line.268"></a>
+<span class="sourceLineNo">269</span>         * @param b<a name="line.269"></a>
+<span class="sourceLineNo">270</span>         * @param axisA dimension to be used a vector (must have length of 2 or 3)<a name="line.270"></a>
+<span class="sourceLineNo">271</span>         * @param axisB dimension to be used a vector (must have length of 2 or 3)<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * @param axisC dimension to assign as cross-product<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @return cross product<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        public static Dataset crossProduct(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                final int rankA = a.getRank();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                final int rankB = b.getRank();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                if (rankA == 0 || rankB == 0) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        throw new IllegalArgumentException("Datasets must have one or more dimensions");<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                axisA = a.checkAxis(axisA);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                axisB = b.checkAxis(axisB);<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>                final int[] shapeA = a.getShape();<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                final int[] shapeB = b.getShape();<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                int la = shapeA[axisA];<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                int lb = shapeB[axisB];<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                if (Math.min(la,  lb) &lt; 2 || Math.max(la, lb) &gt; 3) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                        throw new IllegalArgumentException("Chosen dimension of A &amp; B must be 2 or 3");<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>                if (Math.max(la,  lb) == 2) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        return crossProduct2D(a, b, axisA, axisB);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>                return crossProduct3D(a, b, axisA, axisB, axisC);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>        private static int[] removeAxisFromShape(int[] shape, int axis) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                int[] s = new int[shape.length - 1];<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                int i = 0;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                int j = 0;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                while (i &lt; axis) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        s[j++] = shape[i++];<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                i++;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                while (i &lt; shape.length) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        s[j++] = shape[i++];<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return s;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        // assume axes is in increasing order<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        private static int[] removeAxesFromShape(int[] shape, int... axes) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                int n = axes.length;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                int[] s = new int[shape.length - n];<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                int i = 0;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                int j = 0;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                for (int k = 0; k &lt; n; k++) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        int a = axes[k];<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        while (i &lt; a) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                s[j++] = shape[i++];<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        i++;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                while (i &lt; shape.length) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        s[j++] = shape[i++];<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                return s;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>        private static int[] addAxisToShape(int[] shape, int axis, int length) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                int[] s = new int[shape.length + 1];<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                int i = 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                int j = 0;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                while (i &lt; axis) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        s[j++] = shape[i++];<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                s[j++] = length;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                while (i &lt; shape.length) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        s[j++] = shape[i++];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                return s;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>        private static Dataset crossProduct2D(Dataset a, Dataset b, int axisA, int axisB) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                // need to broadcast and omit given axes<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>                int[] maxShape = fullShapes.get(0);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                @SuppressWarnings("deprecation")<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                IndexIterator itc = c.getIterator();<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                final int[] pa = ita.getPos();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                final int[] pb = itb.getPos();<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                while (itc.hasNext()) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        if (!ita.hasNext()) // TODO use broadcasting...<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                ita.reset();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                        if (!itb.hasNext())<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                itb.reset();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                        pa[axisA] = 0;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        pb[axisB] = 1;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                        double cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        pa[axisA] = 1;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        pb[axisB] = 0;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        c.setObjectAbs(itc.index, cv);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return c;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>        private static Dataset crossProduct3D(Dataset a, Dataset b, int axisA, int axisB, int axisC) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                int[] shapeA = removeAxisFromShape(a.getShapeRef(), axisA);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                int[] shapeB = removeAxisFromShape(b.getShapeRef(), axisB);<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(shapeA, shapeB);<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>                int[] maxShape = fullShapes.get(0);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                int rankC = maxShape.length + 1;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                axisC = ShapeUtils.checkAxis(rankC, axisC);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                maxShape = addAxisToShape(maxShape, axisC, 3);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                @SuppressWarnings("deprecation")<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                Dataset c = DatasetFactory.zeros(maxShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>                PositionIterator ita = a.getPositionIterator(axisA);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                PositionIterator itb = b.getPositionIterator(axisB);<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                PositionIterator itc = c.getPositionIterator(axisC);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>                final int[] pa = ita.getPos();<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                final int[] pb = itb.getPos();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                final int[] pc = itc.getPos();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                final int la = a.getShapeRef()[axisA];<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                final int lb = b.getShapeRef()[axisB];<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>                if (la == 2) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        while (itc.hasNext()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                                        ita.reset();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                                if (!itb.hasNext())<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                                        itb.reset();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                                double cv;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                                pa[axisA] = 1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                                pb[axisB] = 2;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                                pc[axisC] = 0;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                                c.set(cv, pc);<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                                pa[axisA] = 0;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                                pb[axisB] = 2;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                                pc[axisC] = 1;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                                c.set(cv, pc);<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>                                pa[axisA] = 0;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                                pb[axisB] = 1;<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                                pa[axisA] = 1;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                                pb[axisB] = 0;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                                pc[axisC] = 2;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                                c.set(cv, pc);<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                        }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                } else if (lb == 2) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                        while (itc.hasNext()) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                        ita.reset();<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                if (!itb.hasNext())<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                                        itb.reset();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                                double cv;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                                pa[axisA] = 2;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                                pb[axisB] = 1;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                                cv = -a.getDouble(pa) * b.getDouble(pb);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                                pc[axisC] = 0;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                                c.set(cv, pc);<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                pa[axisA] = 2;<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                                pb[axisB] = 0;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                                pc[axisC] = 1;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                                c.set(cv, pc);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>                                pa[axisA] = 0;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                                pb[axisB] = 1;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                                pa[axisA] = 1;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                                pb[axisB] = 0;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                                pc[axisC] = 2;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                                c.set(cv, pc);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        }<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                        <a name="line.459"></a>
+<span class="sourceLineNo">460</span>                } else {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        while (itc.hasNext()) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                                if (!ita.hasNext()) // TODO use broadcasting...<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                                        ita.reset();<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                                if (!itb.hasNext())<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                                        itb.reset();<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                                double cv;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                                pa[axisA] = 1;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                                pb[axisB] = 2;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                                pa[axisA] = 2;<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                                pb[axisB] = 1;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                                pc[axisC] = 0;<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                                c.set(cv, pc);<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>                                pa[axisA] = 2;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                                pb[axisB] = 0;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>                                pa[axisA] = 0;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                                pb[axisB] = 2;<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                                pc[axisC] = 1;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                                c.set(cv, pc);<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>                                pa[axisA] = 0;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                                pb[axisB] = 1;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                                cv = a.getDouble(pa) * b.getDouble(pb);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                                pa[axisA] = 1;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                                pb[axisB] = 0;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                                cv -= a.getDouble(pa) * b.getDouble(pb);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                pc[axisC] = 2;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                                c.set(cv, pc);<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                }<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                return c;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>        /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         * Raise dataset to given power by matrix multiplication<a name="line.499"></a>
+<span class="sourceLineNo">500</span>         * @param a<a name="line.500"></a>
+<span class="sourceLineNo">501</span>         * @param n power<a name="line.501"></a>
+<span class="sourceLineNo">502</span>         * @return a ** n<a name="line.502"></a>
+<span class="sourceLineNo">503</span>         */<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        public static Dataset power(Dataset a, int n) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                if (n &lt; 0) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        return createDataset(lud.getSolver().getInverse().power(-n));<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                Dataset p = createDataset(createRealMatrix(a).power(n));<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                if (!a.hasFloatingPointElements())<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return p.cast(a.getDType());<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return p;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        /**<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         * Create the Kronecker product as defined by <a name="line.516"></a>
+<span class="sourceLineNo">517</span>         * kron[k0,...,kN] = a[i0,...,iN] * b[j0,...,jN]<a name="line.517"></a>
+<span class="sourceLineNo">518</span>         * where kn = sn * in + jn for n = 0...N and s is shape of b<a name="line.518"></a>
+<span class="sourceLineNo">519</span>         * @param a<a name="line.519"></a>
+<span class="sourceLineNo">520</span>         * @param b<a name="line.520"></a>
+<span class="sourceLineNo">521</span>         * @return Kronecker product of a and b<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         */<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        public static Dataset kroneckerProduct(Dataset a, Dataset b) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                if (a.getElementsPerItem() != 1 || b.getElementsPerItem() != 1) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        throw new UnsupportedOperationException("Compound datasets (including complex ones) are not currently supported");<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                int ar = a.getRank();<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                int br = b.getRank();<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                int[] aShape;<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                int[] bShape;<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                aShape = a.getShapeRef();<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                bShape = b.getShapeRef();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                int r = ar;<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                // pre-pad if ranks are not same<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                if (ar &lt; br) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                        r = br;<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        int[] shape = new int[br];<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        int j = 0;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        for (int i = ar; i &lt; br; i++) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                shape[j++] = 1;<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        int i = 0;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        while (j &lt; br) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                shape[j++] = aShape[i++];<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                        a = a.reshape(shape);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        aShape = shape;<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                } else if (ar &gt; br) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        int[] shape = new int[ar];<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        int j = 0;<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        for (int i = br; i &lt; ar; i++) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                shape[j++] = 1;<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                        }<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                        int i = 0;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        while (j &lt; ar) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                shape[j++] = bShape[i++];<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                        b = b.reshape(shape);<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                        bShape = shape;<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                }<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>                int[] nShape = new int[r];<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                for (int i = 0; i &lt; r; i++) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                        nShape[i] = aShape[i] * bShape[i];<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                @SuppressWarnings("deprecation")<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                Dataset kron = DatasetFactory.zeros(nShape, DTypeUtils.getBestDType(a.getDType(), b.getDType()));<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                IndexIterator ita = a.getIterator(true);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                IndexIterator itb = b.getIterator(true);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                int[] pa = ita.getPos();<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                int[] pb = itb.getPos();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>                int[] off = new int[1];<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                int[] stride = AbstractDataset.createStrides(1, nShape, null, 0, off);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                if (kron.getDType() == Dataset.INT64) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        while (ita.hasNext()) {<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                                long av = a.getElementLongAbs(ita.index);<a name="line.576"></a>
+<span class="sourceLineNo">577</span><a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                int ka = 0; <a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                }<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                itb.reset();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                while (itb.hasNext()) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                        long bv = b.getElementLongAbs(itb.index);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                        int kb = ka;<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                                kb += stride[i] * pb[i];<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                        }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                        kron.setObjectAbs(kb, av * bv);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                        }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                } else {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                        while (ita.hasNext()) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                double av = a.getElementDoubleAbs(ita.index);<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                int ka = 0; <a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        ka += stride[i] * bShape[i] * pa[i];<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                                itb.reset();<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                while (itb.hasNext()) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                        double bv = b.getElementLongAbs(itb.index);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                        int kb = ka;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                        for (int i = 0; i &lt; r; i++) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                                                kb += stride[i] * pb[i];<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                        }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                        kron.setObjectAbs(kb, av * bv);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return kron;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * Calculate trace of dataset - sum of values over 1st axis and 2nd axis<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param a<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return trace of dataset<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        public static Dataset trace(Dataset a) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                return trace(a, 0, 0, 1);<a name="line.621"></a>
+<span class="sourceLineNo">622</span>        }<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>        /**<a name="line.624"></a>
+<span class="sourceLineNo">625</span>         * Calculate trace of dataset - sum of values over axis1 and axis2 where axis2 is offset<a name="line.625"></a>
+<span class="sourceLineNo">626</span>         * @param a<a name="line.626"></a>
+<span class="sourceLineNo">627</span>         * @param offset<a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * @param axis1<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @param axis2<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * @return trace of dataset<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static Dataset trace(Dataset a, int offset, int axis1, int axis2) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                int[] shape = a.getShapeRef();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                int[] axes = new int[] { a.checkAxis(axis1), a.checkAxis(axis2) };<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                Arrays.sort(axes);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                int is = a.getElementsPerItem();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                @SuppressWarnings("deprecation")<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                Dataset trace = DatasetFactory.zeros(is, removeAxesFromShape(shape, axes), a.getDType());<a name="line.638"></a>
+<span class="sourceLineNo">639</span><a name="line.639"></a>
+<span class="sourceLineNo">640</span>                int am = axes[0];<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                int mmax = shape[am];<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                int an = axes[1];<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                int nmax = shape[an];<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                PositionIterator it = new PositionIterator(shape, axes);<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                int[] pos = it.getPos();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                int i = 0;<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                int mmin;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                int nmin;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                if (offset &gt;= 0) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        mmin = 0;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        nmin = offset;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                } else {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        mmin = -offset;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        nmin = 0;<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                }<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                if (is == 1) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        if (a.getDType() == Dataset.INT64) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                while (it.hasNext()) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        int m = mmin;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                        int n = nmin;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        long s = 0;<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                pos[am] = m++;<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                pos[an] = n++;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                s += a.getLong(pos);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                        trace.setObjectAbs(i++, s);<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        } else {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                while (it.hasNext()) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        int m = mmin;<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                        int n = nmin;<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                        double s = 0;<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                                pos[am] = m++;<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                                pos[an] = n++;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                                s += a.getDouble(pos);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                        trace.setObjectAbs(i++, s);<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                                }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                } else {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        AbstractCompoundDataset ca = (AbstractCompoundDataset) a;<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        if (ca instanceof CompoundLongDataset) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                long[] t = new long[is];<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                long[] s = new long[is];<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                while (it.hasNext()) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                        int m = mmin;<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        int n = nmin;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                        Arrays.fill(s, 0);<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                                pos[am] = m++;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                                pos[an] = n++;<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                                ((CompoundLongDataset)ca).getAbs(ca.get1DIndex(pos), t);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                                        s[k] += t[k];<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                                }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                        }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                                        trace.setObjectAbs(i++, s);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                }<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        } else {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                double[] t = new double[is];<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                double[] s = new double[is];<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                while (it.hasNext()) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                        int m = mmin;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        int n = nmin;<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        Arrays.fill(s, 0);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                        while (m &lt; mmax &amp;&amp; n &lt; nmax) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                                pos[am] = m++;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                                pos[an] = n++;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                                ca.getDoubleArray(t, pos);<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                                        s[k] += t[k];<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                                }<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                        }<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                        trace.setObjectAbs(i++, s);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>                return trace;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>        }<a name="line.722"></a>
+<span class="sourceLineNo">723</span><a name="line.723"></a>
+<span class="sourceLineNo">724</span>        /**<a name="line.724"></a>
+<span class="sourceLineNo">725</span>         * Order value for norm<a name="line.725"></a>
+<span class="sourceLineNo">726</span>         */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        public enum NormOrder {<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                /**<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                 * 2-norm for vectors and Frobenius for matrices<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                 */<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                DEFAULT,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                /**<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                 * Frobenius (not allowed for vectors)<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                 */<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                FROBENIUS,<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                /**<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 * Zero-order (not allowed for matrices)<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 */<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                ZERO,<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 * Positive infinity<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 */<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                POS_INFINITY,<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                /**<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                 * Negative infinity<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                 */<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                NEG_INFINITY;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>        /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @param a<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         * @return norm of dataset<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>        public static double norm(Dataset a) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                return norm(a, NormOrder.DEFAULT);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        }<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>        /**<a name="line.758"></a>
+<span class="sourceLineNo">759</span>         * @param a<a name="line.759"></a>
+<span class="sourceLineNo">760</span>         * @param order<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @return norm of dataset<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>        public static double norm(Dataset a, NormOrder order) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                int r = a.getRank();<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                if (r == 1) {<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        return vectorNorm(a, order);<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else if (r == 2) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        return matrixNorm(a, order);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                }<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<a name="line.770"></a>
+<span class="sourceLineNo">771</span>        }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>        private static double vectorNorm(Dataset a, NormOrder order) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                double n;<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                IndexIterator it;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                switch (order) {<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                case FROBENIUS:<a name="line.777"></a>
+<span class="sourceLineNo">778</span>                        throw new IllegalArgumentException("Not allowed for vectors");<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                case NEG_INFINITY:<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                case POS_INFINITY:<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        it = a.getIterator();<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        if (order == NormOrder.POS_INFINITY) {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                                n = Double.NEGATIVE_INFINITY;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                                if (a.isComplex()) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                                        while (it.hasNext()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                                n = Math.max(n, v);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                } else {<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                        while (it.hasNext()) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                                                n = Math.max(n, v);<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                                        }<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                }<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        } else {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                                n = Double.POSITIVE_INFINITY;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                                if (a.isComplex()) {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                                        while (it.hasNext()) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>                                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                                n = Math.min(n, v);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                } else {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                                        while (it.hasNext()) {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                                                double v = Math.abs(a.getElementDoubleAbs(it.index));<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                                                n = Math.min(n, v);<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                        }<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                        }<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        break;<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                case ZERO:<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        it = a.getIterator();<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        n = 0;<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                        if (a.isComplex()) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                                while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                        if (!((Complex) a.getObjectAbs(it.index)).equals(Complex.ZERO))<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                                n++;<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                                }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                        } else {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                                while (it.hasNext()) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                        if (a.getElementBooleanAbs(it.index))<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                                                n++;<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        }<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        <a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        break;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                default:<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                        n = vectorNorm(a, 2);<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                        break;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                }<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return n;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>        private static double matrixNorm(Dataset a, NormOrder order) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                double n;<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                IndexIterator it;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                switch (order) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                case NEG_INFINITY:<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                case POS_INFINITY:<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                        n = maxMinMatrixNorm(a, 1, order == NormOrder.POS_INFINITY);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                        break;<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                case ZERO:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        throw new IllegalArgumentException("Not allowed for matrices");<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                default:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                case FROBENIUS:<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        it = a.getIterator();<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        n = 0;<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                        if (a.isComplex()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (it.hasNext()) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                                        n += v*v;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                }<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        } else {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                while (it.hasNext()) {<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        double v = a.getElementDoubleAbs(it.index);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                        n += v*v;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        }<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        n = Math.sqrt(n);<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        break;<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                }<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                return n;<a name="line.861"></a>
+<span class="sourceLineNo">862</span>        }<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>        /**<a name="line.864"></a>
+<span class="sourceLineNo">865</span>         * @param a<a name="line.865"></a>
+<span class="sourceLineNo">866</span>         * @param p<a name="line.866"></a>
+<span class="sourceLineNo">867</span>         * @return p-norm of dataset<a name="line.867"></a>
+<span class="sourceLineNo">868</span>         */<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        public static double norm(Dataset a, final double p) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                if (p == 0) {<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        return norm(a, NormOrder.ZERO);<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                int r = a.getRank();<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                if (r == 1) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                        return vectorNorm(a, p);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                } else if (r == 2) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                        return matrixNorm(a, p);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                }<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                throw new IllegalArgumentException("Rank of dataset must be one or two");<a name="line.879"></a>
+<span class="sourceLineNo">880</span>        }<a name="line.880"></a>
+<span class="sourceLineNo">881</span><a name="line.881"></a>
+<span class="sourceLineNo">882</span>        private static double vectorNorm(Dataset a, final double p) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                IndexIterator it = a.getIterator();<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                double n = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                if (a.isComplex()) {<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        while (it.hasNext()) {<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                                double v = ((Complex) a.getObjectAbs(it.index)).abs();<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                if (p == 2) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                        v *= v;<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                } else if (p != 1) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                                        v = Math.pow(v, p);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                }<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                n += v;<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                        }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        while (it.hasNext()) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                double v = a.getElementDoubleAbs(it.index);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                if (p == 1) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        v = Math.abs(v);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                } else if (p == 2) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                        v *= v;<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                } else {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                        v = Math.pow(Math.abs(v), p);<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                }<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                n += v;<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        }<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                return Math.pow(n, 1./p);<a name="line.908"></a>
+<span class="sourceLineNo">909</span>        }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>        private static double matrixNorm(Dataset a, final double p) {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                double n;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                if (Math.abs(p) == 1) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        n = maxMinMatrixNorm(a, 0, p &gt; 0);<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                } else if (Math.abs(p) == 2) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        double[] s = calcSingularValues(a);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        n = p &gt; 0 ? s[0] : s[s.length - 1];<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                } else {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        throw new IllegalArgumentException("Order not allowed");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return n;<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        private static double maxMinMatrixNorm(Dataset a, int d, boolean max) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                double n;<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                IndexIterator it;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                int[] pos;<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                int l;<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                it = a.getPositionIterator(d);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                pos = it.getPos();<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                l = a.getShapeRef()[d];<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                if (max) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        n = Double.NEGATIVE_INFINITY;<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        if (a.isComplex()) {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                while (it.hasNext()) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                                pos[d] = i;<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                        pos[d] = 0;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        n = Math.max(n, v);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                        } else {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                while (it.hasNext()) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                pos[d] = i;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        pos[d] = 0;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                        n = Math.max(n, v);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        }<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                } else {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        n = Double.POSITIVE_INFINITY;<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        if (a.isComplex()) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                while (it.hasNext()) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        double v = ((Complex) a.getObject(pos)).abs();<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                                                pos[d] = i;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                                v += ((Complex) a.getObject(pos)).abs();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        pos[d] = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        n = Math.min(n, v);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                        } else {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                while (it.hasNext()) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                        double v = Math.abs(a.getDouble(pos));<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                        for (int i = 1; i &lt; l; i++) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                                pos[d] = i;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                                v += Math.abs(a.getDouble(pos));<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                        pos[d] = 0;<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                        n = Math.min(n, v);<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                }<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                return n;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>        }<a name="line.981"></a>
+<span class="sourceLineNo">982</span><a name="line.982"></a>
+<span class="sourceLineNo">983</span>        /**<a name="line.983"></a>
+<span class="sourceLineNo">984</span>         * @param a<a name="line.984"></a>
+<span class="sourceLineNo">985</span>         * @return array of singular values<a name="line.985"></a>
+<span class="sourceLineNo">986</span>         */<a name="line.986"></a>
+<span class="sourceLineNo">987</span>        public static double[] calcSingularValues(Dataset a) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                return svd.getSingularValues();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        }<a name="line.990"></a>
+<span class="sourceLineNo">991</span><a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        /**<a name="line.993"></a>
+<span class="sourceLineNo">994</span>         * Calculate singular value decomposition A = U S V^T<a name="line.994"></a>
+<span class="sourceLineNo">995</span>         * @param a<a name="line.995"></a>
+<span class="sourceLineNo">996</span>         * @return array of U - orthogonal matrix, s - singular values vector, V - orthogonal matrix<a name="line.996"></a>
+<span class="sourceLineNo">997</span>         */<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        public static Dataset[] calcSingularValueDecomposition(Dataset a) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                return new Dataset[] {createDataset(svd.getU()), DatasetFactory.createFromObject(svd.getSingularValues()),<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                createDataset(svd.getV())};<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span><a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>        /**<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>         * Calculate (Moore-Penrose) pseudo-inverse<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>         * @param a<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>         * @return pseudo-inverse<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>         */<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>        public static Dataset calcPseudoInverse(Dataset a) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                return createDataset(svd.getSolver().getInverse());<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        /**<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>         * Calculate matrix rank by singular value decomposition method<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>         * @param a<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>         * @return effective numerical rank of matrix<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>         */<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        public static int calcMatrixRank(Dataset a) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                return svd.getRank();<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        /**<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>         * Calculate condition number of matrix by singular value decomposition method<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>         * @param a<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>         * @return condition number<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>         */<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        public static double calcConditionNumber(Dataset a) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                return svd.getConditionNumber();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>        }<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span><a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>        /**<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @param a<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         * @return determinant of dataset<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>         */<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        public static double calcDeterminant(Dataset a) {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                return evd.getDeterminant();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        /**<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * @param a<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * @return dataset of eigenvalues (can be double or complex double)<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         */<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        public static Dataset calcEigenvalues(Dataset a) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span><a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                        return DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                return DatasetFactory.createFromObject(rev);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        /**<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * Calculate eigen-decomposition A = V D V^T<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         * @param a<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @return array of D eigenvalues (can be double or complex double) and V eigenvectors<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         */<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        public static Dataset[] calcEigenDecomposition(Dataset a) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                EigenDecomposition evd = new EigenDecomposition(createRealMatrix(a));<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                Dataset[] results = new Dataset[2];<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span><a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                double[] rev = evd.getRealEigenvalues();<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                if (evd.hasComplexEigenvalues()) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                        double[] iev = evd.getImagEigenvalues();<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        results[0] = DatasetFactory.createComplexDataset(ComplexDoubleDataset.class, rev, iev);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                } else {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        results[0] = DatasetFactory.createFromObject(rev);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                results[1] = createDataset(evd.getV());<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                return results;<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>        }<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span><a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>        /**<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>         * Calculate QR decomposition A = Q R<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>         * @param a<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>         * @return array of Q and R<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>         */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        public static Dataset[] calcQRDecomposition(Dataset a) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                QRDecomposition qrd = new QRDecomposition(createRealMatrix(a));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                return new Dataset[] {createDataset(qrd.getQT()).getTransposedView(), createDataset(qrd.getR())};<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span><a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        /**<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>         * Calculate LU decomposition A = P^-1 L U<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>         * @param a<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>         * @return array of L, U and P<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>         */<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>        public static Dataset[] calcLUDecomposition(Dataset a) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                return new Dataset[] {createDataset(lud.getL()), createDataset(lud.getU()),<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                createDataset(lud.getP())};<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>        }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span><a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>        /**<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>         * Calculate inverse of square dataset<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>         * @param a<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>         * @return inverse<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>         */<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>        public static Dataset calcInverse(Dataset a) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                return createDataset(lud.getSolver().getInverse());<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>        }<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span><a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>        /**<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>         * Solve linear matrix equation A x = v<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>         * @param a<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>         * @param v<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>         * @return x<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>         */<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>        public static Dataset solve(Dataset a, Dataset v) {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                LUDecomposition lud = new LUDecomposition(createRealMatrix(a));<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                if (v.getRank() == 1) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                        RealVector x = createRealVector(v);<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        return createDataset(lud.getSolver().solve(x));<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                }<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                RealMatrix x = createRealMatrix(v);<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                return createDataset(lud.getSolver().solve(x));<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        <a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>        /**<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>         * Solve least squares matrix equation A x = v by SVD<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>         * @param a<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>         * @param v<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>         * @return x<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>         */<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>        public static Dataset solveSVD(Dataset a, Dataset v) {<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                SingularValueDecomposition svd = new SingularValueDecomposition(createRealMatrix(a));<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                if (v.getRank() == 1) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        RealVector x = createRealVector(v);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                        return createDataset(svd.getSolver().solve(x));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                }<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                RealMatrix x = createRealMatrix(v);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                return createDataset(svd.getSolver().solve(x));<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>        <a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>        /**<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>         * Calculate Cholesky decomposition A = L L^T<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>         * @param a<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>         * @return L<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>         */<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>        public static Dataset calcCholeskyDecomposition(Dataset a) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                CholeskyDecomposition cd = new CholeskyDecomposition(createRealMatrix(a));<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                return createDataset(cd.getL());<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span><a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>        /**<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; ||v|| with maximum of 100 iterations<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>         * @param a<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>         * @param v<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>         */<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v) {<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                return calcConjugateGradient(a, v, 100, 1);<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span><a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>        /**<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>         * Calculation A x = v by conjugate gradient method with the stopping criterion being<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>         * that the estimated residual r = v - A x satisfies ||r|| &lt; delta ||v||<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>         * @param a<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>         * @param v<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>         * @param maxIterations<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>         * @param delta parameter used by stopping criterion<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>         * @return solution of A^-1 v by conjugate gradient method<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>         */<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>        public static Dataset calcConjugateGradient(Dataset a, Dataset v, int maxIterations, double delta) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                ConjugateGradient cg = new ConjugateGradient(maxIterations, delta, false);<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                return createDataset(cg.solve((RealLinearOperator) createRealMatrix(a), createRealVector(v)));<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>        }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span><a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>        private static RealMatrix createRealMatrix(Dataset a) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                if (a.getRank() != 2) {<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new IllegalArgumentException("Dataset must be rank 2");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                int[] shape = a.getShapeRef();<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                IndexIterator it = a.getIterator(true);<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                int[] pos = it.getPos();<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                RealMatrix m = MatrixUtils.createRealMatrix(shape[0], shape[1]);<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                while (it.hasNext()) {<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                        m.setEntry(pos[0], pos[1], a.getElementDoubleAbs(it.index));<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                return m;<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span><a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>        private static RealVector createRealVector(Dataset a) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                if (a.getRank() != 1) {<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                        throw new IllegalArgumentException("Dataset must be rank 1");<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                }<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                int size = a.getSize();<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                IndexIterator it = a.getIterator(true);<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                int[] pos = it.getPos();<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                RealVector m = new ArrayRealVector(size);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                while (it.hasNext()) {<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        m.setEntry(pos[0], a.getElementDoubleAbs(it.index));<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                }<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                return m;<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>        }<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span><a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>        private static Dataset createDataset(RealVector v) {<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, v.getDimension());<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                int size = r.getSize();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                if (v instanceof ArrayRealVector) {<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        double[] data = ((ArrayRealVector) v).getDataRef();<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                                r.setAbs(i, data[i]);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        }<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                } else {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                        for (int i = 0; i &lt; size; i++) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                r.setAbs(i, v.getEntry(i));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                        }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                return r;<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>        }<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span><a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>        private static Dataset createDataset(RealMatrix m) {<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, m.getRowDimension(), m.getColumnDimension());<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                if (m instanceof Array2DRowRealMatrix) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                        double[][] data = ((Array2DRowRealMatrix) m).getDataRef();<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                        IndexIterator it = r.getIterator(true);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                        int[] pos = it.getPos();<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                        while (it.hasNext()) {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                r.setAbs(it.index, data[pos[0]][pos[1]]);<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                        }<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                } else {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                        IndexIterator it = r.getIterator(true);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        int[] pos = it.getPos();<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        while (it.hasNext()) {<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                r.setAbs(it.index, m.getEntry(pos[0], pos[1]));<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                return r;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>        }<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>}<a name="line.1239"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LongDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LongDataset.html
new file mode 100644
index 0000000..f40d3f3
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/LongDataset.html
@@ -0,0 +1,1338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for long values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class LongDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected long[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (long[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static long[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                long[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new long[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT64; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        LongDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        LongDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        LongDataset(final long[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        LongDataset(final LongDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        LongDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (!super.equals(obj)) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                LongDataset other = (LongDataset) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//              if (size == 1) // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator iter = getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                IndexIterator oiter = other.getIterator();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                return false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return true;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int hashCode() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return super.hashCode();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public LongDataset clone() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return new LongDataset(this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * sequences or arrays are padded with zeros.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param obj<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return dataset with contents given by input<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static LongDataset createFromObject(final Object obj) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                LongDataset result = new LongDataset();<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (obj != null) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                result.odata = result.data = createArray(result.size);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } catch (Throwable t) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                throw new IllegalArgumentException(t);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] pos = new int[result.shape.length];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        result.fillData(obj, 0, pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return result;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param stop<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        static LongDataset createRange(final double stop) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return createRange(0, stop, 1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        <a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param start<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param stop<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param step<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        static LongDataset createRange(final double start, final double stop, final double step) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int size = calcSteps(start, stop, step);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                LongDataset result = new LongDataset(size);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                for (int i = 0; i &lt; size; i++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        result.data[i] = (long) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param shape<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return a dataset filled with ones<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        static LongDataset ones(final int... shape) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return new LongDataset(shape).fill(1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public LongDataset fill(final Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                setDirty();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                IndexIterator iter = getIterator();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                while (iter.hasNext()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        data[iter.index] = dv;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return this;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * This is a typed version of {@link #getBuffer()}<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return data buffer as linear array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public long[] getData() { // PRIM_TYPE<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return data;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        @Override<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        protected int getBufferLength() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (data == null)<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return data.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public LongDataset getView(boolean deepCopyMetadata) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                LongDataset view = new LongDataset();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                view.setData();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return view;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param index<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            absolute index<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return value<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         */<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public long getAbs(final int index) { // PRIM_TYPE<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return data[index];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public double getElementDoubleAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index]; // BOOLEAN_ZERO<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public long getElementLongAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public Object getObjectAbs(final int index) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return data[index];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public String getStringAbs(final int index) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        stringFormat.format(data[index]);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param index<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            absolute index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param val<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         *            new value<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public void setAbs(final int index, final long val) { // PRIM_TYPE<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                setDirty();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                data[index] = val;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                setDirty();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                long[] dsrc = (long[]) src; // PRIM_TYPE<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                data[dindex] = dsrc[sindex];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>                setAbs(index, DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in first position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @since 2.0<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public long get() { // PRIM_TYPE<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return data[getFirst1DIndex()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param i<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in given position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public long get(final int i) { // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return data[get1DIndex(i)];<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @param i<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param j<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public long get(final int i, final int j) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return data[get1DIndex(i, j)];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param pos<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public long get(final int... pos) { // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return data[get1DIndex(pos)];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Long.valueOf(get()); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int i) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Long.valueOf(get(i)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public Object getObject(final int i, final int j) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return Long.valueOf(get(i, j)); // CLASS_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public Object getObject(final int... pos) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return Long.valueOf(get(pos)); // CLASS_TYPE<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString() {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(getFirst1DIndex());<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int i) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(i));<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public String getString(final int i, final int j) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return getStringAbs(get1DIndex(i, j));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public String getString(final int... pos) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return getStringAbs(get1DIndex(pos));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get(); // BOOLEAN_ZERO<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int i) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get(i); // BOOLEAN_ZERO<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double getDouble(final int i, final int j) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return get(i, j); // BOOLEAN_ZERO<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public double getDouble(final int... pos) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return get(pos); // BOOLEAN_ZERO<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>        @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public float getFloat() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int i) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public float getFloat(final int i, final int j) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public float getFloat(final int... pos) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int i) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public long getLong(final int i, final int j) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public long getLong(final int... pos) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt() {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return (int) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int i) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return (int) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int getInt(final int i, final int j) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return (int) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public int getInt(final int... pos) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return (int) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return (short) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int i) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return (short) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getShort(final int i, final int j) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return (short) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public short getShort(final int... pos) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return (short) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int i) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public byte getByte(final int i, final int j) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public byte getByte(final int... pos) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public boolean getBoolean(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return get(i, j) != 0; // BOOLEAN_FALSE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public boolean getBoolean(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return get(pos) != 0; // BOOLEAN_FALSE<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @since 2.0<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final long value) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(getFirst1DIndex(), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void setItem(final long value, final int i) { // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setAbs(get1DIndex(i), value);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         *<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param value<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param i<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param j<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final long value, final int i, final int j) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(i, j), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * Sets the value at a particular point to the passed value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         *<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @param value<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param pos<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void setItem(final long value, final int... pos) { // PRIM_TYPE<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setAbs(get1DIndex(pos), value);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem(DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, final int i) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                setItem(DTypeUtils.toLong(obj), i); // FROM_OBJECT<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        @Override<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void set(final Object obj, final int i, final int j) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                setItem(DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public void set(final Object obj, int... pos) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        pos = new int[shape.length];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                setItem(DTypeUtils.toLong(obj), pos); // FROM_OBJECT<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public void resize(int... newShape) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                setDirty();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final IndexIterator iter = getIterator();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                final long[] ndata; // PRIM_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                try {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ndata = createArray(nsize);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } catch (Throwable t) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        throw new IllegalArgumentException(t);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        ndata[i] = data[iter.index];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span>                odata = data = ndata;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                size = nsize;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                shape = newShape;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                stride = null;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                offset = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                base = null;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        @Override<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public LongDataset sort(Integer axis) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                setDirty();<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (axis == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        if (stride == null) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                Arrays.sort(data);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        } else {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                LongDataset ads = clone().sort(null);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                setSlicedView(getView(false), ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                } else {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        axis = checkAxis(axis);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        <a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        LongDataset ads = new LongDataset(shape[axis]);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        int[] pos = pi.getPos();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        boolean[] hit = pi.getOmit();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        while (pi.hasNext()) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                Arrays.sort(ads.data);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                return this;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public LongDataset getUniqueItems() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                Set&lt;Long&gt; set = new TreeSet&lt;Long&gt;(); // CLASS_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                IndexIterator it = getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        set.add(data[it.index]);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                LongDataset u = new LongDataset(set.size()); // CLASS_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                long[] udata = u.getData(); // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                for (Long v : set) { // CLASS_TYPE<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        udata[i++] = v;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return u;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>        @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        public LongDataset getSlice(final SliceIterator siter) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                LongDataset result = new LongDataset(siter.getShape());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                long[] rdata = result.data; // PRIM_TYPE<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        rdata[i] = data[siter.index];<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                result.setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                long[] rdata = ((LongDataset) result).data; // PRIM_TYPE<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        rdata[riter.index] = data[iter.index];<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public LongDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                setDirty();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (obj instanceof Dataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final Dataset ds = (Dataset) obj;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (length != ds.getSize()) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                throw new IllegalArgumentException(<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[biter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (biter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[biter.index] = dv;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                return this;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        public LongDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                if (obj instanceof Dataset) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        final Dataset ds = (Dataset) obj;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        if (index.getSize() != ds.getSize()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                throw new IllegalArgumentException(<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                data[iter.index] = ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        while (iter.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                data[iter.index] = dv;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return this;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public LongDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                setDirty();<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final int[] pos = iter.getPos();<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                if (obj instanceof Dataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        final Dataset ds = (Dataset) obj;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                throw new IllegalArgumentException(<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                setItem(ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final long dv = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        while (iter.hasNext()) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                setItem(dv, pos);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return this;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        LongDataset setSlicedView(Dataset view, Dataset d) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                setDirty();<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        data[it.aIndex] = it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public LongDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                if (obj instanceof IDataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final IDataset ds = (IDataset) obj;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final int[] oshape = ds.getShape();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException(String.format(<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                                Arrays.toString(siter.getShape())));<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (ds instanceof Dataset) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final Dataset ads = (Dataset) ds;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        data[siter.index] = ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                final int[] pos = oiter.getPos();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[siter.index] = ds.getLong(pos); // PRIM_TYPE<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                } else {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                long v = DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (siter.hasNext())<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        data[siter.index] = v;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } catch (IllegalArgumentException e) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                return this;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Override<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                long[] ddata = (long[]) dest.getBuffer(); // PRIM_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                dest.setDirty();<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        ddata[diter.index] = data[siter.index];<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        @Override<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                setDirty();<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                long[] sdata = (long[]) src; // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        data[siter.index] = sdata[i];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        private List&lt;int[]&gt; findPositions(final long value) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                IndexIterator iter = getIterator(true);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] pos = iter.getPos();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        while (iter.hasNext()) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                if (data[iter.index] == value) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        posns.add(pos.clone());<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                return posns;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>        @Override<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>                if (max == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        max = findPositions(md.getMaximum(ignoreInvalids).longValue()); // PRIM_TYPE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        md.setMaximumPositions(max);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return max.get(0); // first maximum<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        @Override<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>                if (min == null) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        min = findPositions(md.getMinimum(ignoreInvalids).longValue()); // PRIM_TYPE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span><a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        md.setMinimumPositions(min);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return min.get(0); // first minimum<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>        @Override<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        public boolean containsNans() {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                return false;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public boolean containsInfs() {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                return false;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>        @Override<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        public boolean containsInvalidNumbers() {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                return false;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>        @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        public LongDataset iadd(final Object b) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setDirty();<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                if (bds.getSize() == 1) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        final IndexIterator it = getIterator();<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        final int bOffset = bds.getOffset();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        if (useLong) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                while (it.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        data[it.index] += lb;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        } else {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                while (it.hasNext()) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        data[it.index] += db;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } else {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        it.setOutputDouble(!useLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (useLong) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                while (it.hasNext()) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        data[it.aIndex] += it.bLong;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        } else {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                while (it.hasNext()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        data[it.aIndex] += it.bDouble;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        }<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return this;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        @Override<a name="line.993"></a>
+<span class="sourceLineNo">994</span>        public LongDataset isubtract(final Object b) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                setDirty();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                if (bds.getSize() == 1) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        final IndexIterator it = getIterator();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        final int bOffset = bds.getOffset();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        if (useLong) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                while (it.hasNext()) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        data[it.index] -= lb;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        } else {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        data[it.index] -= db;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                } else {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        if (useLong) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                it.setOutputDouble(false);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                while (it.hasNext()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        } else {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                it.setOutputDouble(true);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                while (it.hasNext()) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        data[it.aIndex] -= it.bDouble;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return this;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        @Override<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>        public LongDataset imultiply(final Object b) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                setDirty();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (bds.getSize() == 1) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        final IndexIterator it = getIterator();<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        final int bOffset = bds.getOffset();<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        if (useLong) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                while (it.hasNext()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        data[it.index] *= lb;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        } else {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        data[it.index] *= db;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                } else {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        it.setOutputDouble(!useLong);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        if (useLong) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        } else {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                while (it.hasNext()) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                        data[it.aIndex] *= it.bDouble;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                }<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        }<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                return this;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public LongDataset idivide(final Object b) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                if (bds.getSize() == 1) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        final int bOffset = bds.getOffset();<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        if (useLong) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                if (lb == 0) { // INT_USE<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                        fill(0); // INT_USE<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } else { // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                final IndexIterator it = getIterator();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        data[it.index] /= lb;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        } else {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                if (db == 0) { // INT_USE<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        fill(0); // INT_USE<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } else { // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                final IndexIterator it = getIterator();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        data[it.index] /= db;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                } // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        }<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                } else {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        it.setOutputDouble(!useLong);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        if (useLong) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                while (it.hasNext()) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                        } else { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        } // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        } else {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                while (it.hasNext()) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        } else { // INT_USE<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                        } // INT_USE<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                return this;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span><a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        @Override<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        public LongDataset ifloor() {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                return this;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>        }<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        @Override<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        public LongDataset iremainder(final Object b) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                setDirty();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                if (bds.getSize() == 1) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        final int bOffset = bds.getOffset();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        if (useLong) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                if (lb == 0) { // INT_USE<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        fill(0); // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                } else { // INT_USE<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final IndexIterator it = getIterator();<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                while (it.hasNext()) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        data[it.index] %= lb;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                } // INT_USE<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        } else {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                if (lb == 0) { // INT_USE<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        fill(0); // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                } else { // INT_USE<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                final IndexIterator it = getIterator();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                while (it.hasNext()) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        data[it.index] %= lb;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                } // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                } else {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        it.setOutputDouble(!useLong);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        if (useLong) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                while (it.hasNext()) {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                } catch (ArithmeticException e) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        data[it.aIndex] = 0;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                while (it.hasNext()) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        data[it.aIndex] %= it.bDouble;<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                return this;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span><a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        @Override<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        public LongDataset ipower(final Object b) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                if (bds.getSize() == 1) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        final int bOffset = bds.getOffset();<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        final IndexIterator it = getIterator();<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (bds.isComplex()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                if (vi == 0) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                        while (it.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                                } else { // INT_USE<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                                data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                                } // INT_USE<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                } else {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                        while (it.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                                } else { // INT_USE<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                                } // INT_USE<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        } else {// NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                while (it.hasNext()) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                                data[it.index] = 0; // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        } else { // INT_USE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        data[it.index] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        } // INT_USE<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                }<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                } else {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        it.setOutputDouble(true);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (bds.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        } else { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        } else {// NAN_OMIT<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (it.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        } else { // INT_USE<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        data[it.aIndex] = (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        } // INT_USE<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                }<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                }<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                return this;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span><a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>        @Override<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                it.setOutputDouble(true);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                double sum = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                double comp = 0;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        if (w == null) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                while (it.hasNext()) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        final double err = diff * diff - comp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                        final double temp = sum + err;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                        comp = (temp - sum) - err;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        sum = temp;<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        } else {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                IndexIterator itw = w.getIterator();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        final double temp = sum + err;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                        comp = (temp - sum) - err;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        sum = temp;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                }<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                return sum;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>}<a name="line.1266"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Maths.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Maths.html
new file mode 100644
index 0000000..08797a5
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Maths.html
@@ -0,0 +1,3212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.ArrayList;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Arrays;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Collection;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Iterator;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.eclipse.january.dataset.Comparisons.Monotonicity;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.dataset.internal.GeneratedMaths;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Mathematics class<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class Maths extends GeneratedMaths {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        /**<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * Unwrap result from mathematical methods if necessary<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * <a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @param o<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param a<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @return a dataset if a is a dataset or an object of the same class as o<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public static Object unwrap(final Dataset o, final Object a) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                return a instanceof Dataset ? o : o.getObjectAbs(o.getOffset());<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        }<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * Unwrap result from mathematical methods if necessary<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * <a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param o<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param a<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return a dataset if either a and b are datasets or an object of the same<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *         class as o<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        public static Object unwrap(final Dataset o, final Object a, final Object b) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                return (a instanceof Dataset || b instanceof Dataset) ? o : o.getObjectAbs(o.getOffset());<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>        /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * Unwrap result from mathematical methods if necessary<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * <a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param o<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param a<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @return a dataset if any inputs are datasets or an object of the same<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         *         class as o<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public static Object unwrap(final Dataset o, final Object... a) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                boolean isAnyDataset = false;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                for (Object obj : a) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        if (obj instanceof Dataset) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                                isAnyDataset = true;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                break;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                }<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                return isAnyDataset ? o : o.getObjectAbs(o.getOffset());<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>        /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param a<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param b<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @return floor divide of a and b<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        public static Dataset floorDivide(final Object a, final Object b) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                return floorDivide(a, b, null);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>        /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param a<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param b<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @param o<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         *            output can be null - in which case, a new dataset is created<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @return floor divide of a and b<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public static Dataset floorDivide(final Object a, final Object b, final Dataset o) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                return divideTowardsFloor(a, b, o).ifloor();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        /**<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param a<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @param b<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * @return floor remainder of a and b<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        public static Dataset floorRemainder(final Object a, final Object b) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                return floorRemainder(a, b, null);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>        /**<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param a<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param b<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param o<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         *            output can be null - in which case, a new dataset is created<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @return floor remainder of a and b<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        public static Dataset floorRemainder(final Object a, final Object b, final Dataset o) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                Dataset dq = floorDivide(da, db);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                dq.imultiply(db);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                return subtract(da, dq, o);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * Find reciprocal from dataset<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * <a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param a<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @return reciprocal dataset<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        public static Dataset reciprocal(final Object a) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                return reciprocal(a, null);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * Find reciprocal from dataset<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         * <a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @param a<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param o<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         *            output can be null - in which case, a new dataset is created<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @return reciprocal dataset<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        public static Dataset reciprocal(final Object a, final Dataset o) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return divide(1, da, o);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>        /**<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * abs - absolute value of each element<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * <a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @param a<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         * @return dataset<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         */<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        public static Dataset abs(final Object a) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                return abs(a, null);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * abs - absolute value of each element<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * <a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * @param a<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @param o<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         *            output can be null - in which case, a new dataset is created<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * @return dataset<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         */<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        public static Dataset abs(final Object a, final Dataset o) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                final Dataset result = it.getOutput();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                final int is = result.getElementsPerItem();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                final int dt = result.getDType();<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                final int as = da.getElementsPerItem();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                final boolean reset = result == o &amp;&amp; is &gt; 1;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                switch (dt) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                case Dataset.INT8:<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        final byte[] oi8data = ((ByteDataset) result).data;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        it.setOutputDouble(false);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        while (it.hasNext()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                oi8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        break;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                case Dataset.INT16:<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        final short[] oi16data = ((ShortDataset) result).data;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                        it.setOutputDouble(false);<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        while (it.hasNext()) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                oi16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        break;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                case Dataset.INT32:<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        final int[] oi32data = ((IntegerDataset) result).data;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        it.setOutputDouble(false);<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        while (it.hasNext()) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                oi32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        break;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                case Dataset.INT64:<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        final long[] oi64data = ((LongDataset) result).data;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        it.setOutputDouble(false);<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        while (it.hasNext()) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                oi64data[it.oIndex] = Math.abs(it.aLong);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        break;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                case Dataset.ARRAYINT8:<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        final byte[] oai8data = ((CompoundByteDataset) result).data;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        it.setOutputDouble(false);<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        if (is == 1) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                while (it.hasNext()) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                        oai8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } else if (as == 1) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                while (it.hasNext()) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        byte ox = (byte) Math.abs(it.aLong);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                                oai8data[it.oIndex + j] = ox;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                        }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        } else {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                                while (it.hasNext()) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                                        oai8data[it.oIndex] = (byte) Math.abs(it.aLong);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                                oai8data[it.oIndex + j] = (byte) Math.abs(da.getElementLongAbs(it.aIndex + j));<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        break;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                case Dataset.ARRAYINT16:<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        final short[] oai16data = ((CompoundShortDataset) result).data;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        it.setOutputDouble(false);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>                        if (is == 1) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                while (it.hasNext()) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                        oai16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                                }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        } else if (as == 1) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                                while (it.hasNext()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                                        short ox = (short) Math.abs(it.aLong);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                                                oai16data[it.oIndex + j] = ox;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                                }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        } else {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                                while (it.hasNext()) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                                        oai16data[it.oIndex] = (short) Math.abs(it.aLong);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                                                oai16data[it.oIndex + j] = (short) Math.abs(da.getElementLongAbs(it.aIndex + j));<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                                        }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        break;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                case Dataset.ARRAYINT32:<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).data;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        it.setOutputDouble(false);<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        if (is == 1) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                while (it.hasNext()) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                        oai32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (as == 1) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                while (it.hasNext()) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                        int ox = (int) Math.abs(it.aLong);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                                oai32data[it.oIndex + j] = ox;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                                        }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        } else {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                while (it.hasNext()) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                        oai32data[it.oIndex] = (int) Math.abs(it.aLong);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                                oai32data[it.oIndex + j] = (int) Math.abs(da.getElementLongAbs(it.aIndex + j));<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                                        }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        }<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        break;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                case Dataset.ARRAYINT64:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        final long[] oai64data = ((CompoundLongDataset) result).data;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        it.setOutputDouble(false);<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        if (is == 1) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                while (it.hasNext()) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                        oai64data[it.oIndex] = Math.abs(it.aLong);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                        } else if (as == 1) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                while (it.hasNext()) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                                        long ox = Math.abs(it.aLong);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                                                oai64data[it.oIndex + j] = ox;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                                        }<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        } else {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                while (it.hasNext()) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        oai64data[it.oIndex] = Math.abs(it.aLong);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                                oai64data[it.oIndex + j] = Math.abs(da.getElementLongAbs(it.aIndex + j));<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        break;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                case Dataset.FLOAT32:<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        final float[] of32data = ((FloatDataset) result).data;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        if (as == 1) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                while (it.hasNext()) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        of32data[it.oIndex] = (float) (Math.abs(it.aDouble));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        } else {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                while (it.hasNext()) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                        of32data[it.oIndex] = (float) (Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1)));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        break;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                case Dataset.FLOAT64:<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        final double[] of64data = ((DoubleDataset) result).data;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        if (as == 1) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                while (it.hasNext()) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                        of64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        } else {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                while (it.hasNext()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                                        of64data[it.oIndex] = Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                        break;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                case Dataset.ARRAYFLOAT32:<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).data;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        if (is == 1) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                while (it.hasNext()) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                                        oaf32data[it.oIndex] = (float) (Math.abs(it.aDouble));<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                                }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        } else if (as == 1) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                                while (it.hasNext()) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                        float ox = (float) (Math.abs(it.aDouble));<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                                                oaf32data[it.oIndex + j] = ox;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                                }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        } else {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                                while (it.hasNext()) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                                        oaf32data[it.oIndex] = (float) Math.abs(it.aDouble);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                                                oaf32data[it.oIndex + j] = (float) Math.abs(da.getElementDoubleAbs(it.aIndex + j));<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                                        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                                }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                        break;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                case Dataset.ARRAYFLOAT64:<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).data;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        if (is == 1) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                                while (it.hasNext()) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                                        oaf64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                                }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        } else if (as == 1) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                                while (it.hasNext()) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                        final double ix = it.aDouble;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                                        double ox = Math.abs(ix);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                }<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        } else {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                while (it.hasNext()) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                                        oaf64data[it.oIndex] = Math.abs(it.aDouble);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                                oaf64data[it.oIndex + j] = Math.abs(da.getElementDoubleAbs(it.aIndex + j));<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                }<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                        break;<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                case Dataset.COMPLEX64:<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        final float[] oc64data = ((ComplexFloatDataset) result).data;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        if (as == 1) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                while (it.hasNext()) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                                        oc64data[it.oIndex] = (float) Math.abs(it.aDouble);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                        if (reset) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                                                oc64data[it.oIndex + 1] = 0;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                                        }<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                        } else {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                                while (it.hasNext()) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                                        oc64data[it.oIndex] = (float) Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                        if (reset) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                                                oc64data[it.oIndex + 1] = 0;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                                        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                                }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        break;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                case Dataset.COMPLEX128:<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).data;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        if (as == 1) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                                while (it.hasNext()) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                                        oc128data[it.oIndex] = Math.abs(it.aDouble);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                        if (reset) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                                oc128data[it.oIndex + 1] = 0;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                                        }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                                }<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                        } else {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                                while (it.hasNext()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                                        oc128data[it.oIndex] = Math.hypot(it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                                        if (reset) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                                                oc128data[it.oIndex + 1] = 0;<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                                        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                                }<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                        }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        break;<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                default:<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        throw new IllegalArgumentException(<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                                        "abs supports integer, compound integer, real, compound real, complex datasets only");<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>                addFunctionName(result, "abs");<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                return result;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        }<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>        /**<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         * @param a<a name="line.408"></a>
+<span class="sourceLineNo">409</span>         * @return a^*, complex conjugate of a<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        public static Dataset conjugate(final Object a) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return conjugate(a, null);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>        /**<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * @param a<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         * @param o<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         *            output can be null - in which case, a new dataset is created<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * @return a^*, complex conjugate of a<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         */<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public static Dataset conjugate(final Object a, final Dataset o) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                int at = da.getDType();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                IndexIterator it1 = da.getIterator();<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, true);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                Dataset result = it.getOutput();<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>                switch (at) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                case Dataset.COMPLEX64:<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        for (int i = 0; it1.hasNext();) {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                                c64data[i++] = (float) da.getElementDoubleAbs(it1.index);<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                                c64data[i++] = (float) -da.getElementDoubleAbs(it1.index + 1);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                        result.setName(Operations.bracketIfNecessary(da.getName()).append("^*").toString());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                        break;<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                case Dataset.COMPLEX128:<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>                        for (int i = 0; it1.hasNext();) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                                c128data[i++] = da.getElementDoubleAbs(it1.index);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                                c128data[i++] = -da.getElementDoubleAbs(it1.index + 1);<a name="line.444"></a>
+<span class="sourceLineNo">445</span>                        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>                        result.setName(Operations.bracketIfNecessary(da.getName()).append("^*").toString());<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                        break;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                default:<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                        result = da;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                }<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>                return result;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>        /**<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @param a<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         *            side of right-angled triangle<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         * @param b<a name="line.458"></a>
+<span class="sourceLineNo">459</span>         *            side of right-angled triangle<a name="line.459"></a>
+<span class="sourceLineNo">460</span>         * @return hypotenuse of right-angled triangle: sqrt(a^2 + a^2)<a name="line.460"></a>
+<span class="sourceLineNo">461</span>         */<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public static Dataset hypot(final Object a, final Object b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return hypot(a, b, null);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        /**<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         * @param a<a name="line.467"></a>
+<span class="sourceLineNo">468</span>         *            side of right-angled triangle<a name="line.468"></a>
+<span class="sourceLineNo">469</span>         * @param b<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         *            side of right-angled triangle<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * @param o<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         *            output can be null - in which case, a new dataset is created<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @return hypotenuse of right-angled triangle: sqrt(a^2 + a^2)<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static Dataset hypot(final Object a, final Object b, final Dataset o) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.477"></a>
+<span class="sourceLineNo">478</span><a name="line.478"></a>
+<span class="sourceLineNo">479</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>                it.setOutputDouble(true);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                final Dataset result = it.getOutput();<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                final int is = result.getElementsPerItem();<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                final int as = da.getElementsPerItem();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                final int bs = db.getElementsPerItem();<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                final int dt = result.getDType();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                switch (dt) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                case Dataset.BOOL:<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        while (it.hasNext()) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                bdata[it.oIndex] = Math.hypot(it.aDouble, it.bDouble) != 0;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                        }<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        break;<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                case Dataset.INT8:<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>                        while (it.hasNext()) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                                i8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        break;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                case Dataset.INT16:<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        while (it.hasNext()) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                                i16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                        break;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                case Dataset.INT32:<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        while (it.hasNext()) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                                i32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        break;<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                case Dataset.INT64:<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.516"></a>
+<span class="sourceLineNo">517</span><a name="line.517"></a>
+<span class="sourceLineNo">518</span>                        while (it.hasNext()) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                i64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                        }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        break;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                case Dataset.FLOAT32:<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        while (it.hasNext()) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                                f32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        break;<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                case Dataset.FLOAT64:<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>                        while (it.hasNext()) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                f64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                        break;<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                case Dataset.ARRAYINT8:<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>                        if (is == 1) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                                while (it.hasNext()) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                                }<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        } else if (as == 1) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                                while (it.hasNext()) {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                                                ai8data[it.oIndex<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                                                                + j] = (byte) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                                        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                }<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                        } else if (bs == 1) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                while (it.hasNext()) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                                ai8data[it.oIndex<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                                                + j] = (byte) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                                        }<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                }<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                        } else {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                while (it.hasNext()) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                                        }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        }<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        break;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                case Dataset.ARRAYINT16:<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>                        if (is == 1) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                                while (it.hasNext()) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                                }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                        } else if (as == 1) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                                while (it.hasNext()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                                ai16data[it.oIndex<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                                                + j] = (short) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                        }<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                }<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                        } else if (bs == 1) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                while (it.hasNext()) {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                                ai16data[it.oIndex<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                                                + j] = (short) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                        }<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        } else {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                                while (it.hasNext()) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                                        ai16data[it.oIndex] = (short) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        }<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                        break;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                case Dataset.ARRAYINT32:<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        if (is == 1) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                while (it.hasNext()) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                                }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                        } else if (as == 1) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                                while (it.hasNext()) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                                                ai32data[it.oIndex<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                                                + j] = (int) toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                        } else if (bs == 1) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                while (it.hasNext()) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                                                ai32data[it.oIndex<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                                                                + j] = (int) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                                        }<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                                }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                                while (it.hasNext()) {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>                                        ai32data[it.oIndex] = (int) toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                                        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                                }<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        break;<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                case Dataset.ARRAYINT64:<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        if (is == 1) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                while (it.hasNext()) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                }<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        } else if (as == 1) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                while (it.hasNext()) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                        }<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                        } else if (bs == 1) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                while (it.hasNext()) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                }<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        } else {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                while (it.hasNext()) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                        ai64data[it.oIndex] = toLong(Math.hypot(it.aDouble, it.bDouble));<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                                ai64data[it.oIndex + j] = toLong(Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                        }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        break;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                case Dataset.ARRAYFLOAT32:<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        float[] a32data = ((CompoundFloatDataset) result).getData();<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        if (is == 1) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                                while (it.hasNext()) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                                }<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                        } else if (as == 1) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                while (it.hasNext()) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                                        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                                }<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        } else if (bs == 1) {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                                while (it.hasNext()) {<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                                        }<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                                }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        } else {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                while (it.hasNext()) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                                        a32data[it.oIndex] = (float) Math.hypot(it.aDouble, it.bDouble);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                                a32data[it.oIndex + j] = (float) Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        }<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                        break;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                case Dataset.ARRAYFLOAT64:<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                        double[] a64data = ((CompoundDoubleDataset) result).getData();<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        if (is == 1) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                while (it.hasNext()) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                }<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                        } else if (as == 1) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                while (it.hasNext()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                                a64data[it.oIndex + j] = Math.hypot(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                }<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        } else if (bs == 1) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                while (it.hasNext()) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                                a64data[it.oIndex + j] = Math.hypot(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                        }<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        } else {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                while (it.hasNext()) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        a64data[it.oIndex] = Math.hypot(it.aDouble, it.bDouble);<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                                a64data[it.oIndex + j] = Math.hypot(da.getElementDoubleAbs(it.aIndex + j),<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                        }<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                        }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        break;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                default:<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        throw new UnsupportedOperationException("hypot does not support this dataset type");<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>                addFunctionName(da, db, result, "hypot");<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                return result;<a name="line.734"></a>
+<span class="sourceLineNo">735</span>        }<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>        /**<a name="line.737"></a>
+<span class="sourceLineNo">738</span>         * @param a<a name="line.738"></a>
+<span class="sourceLineNo">739</span>         *            opposite side of right-angled triangle<a name="line.739"></a>
+<span class="sourceLineNo">740</span>         * @param b<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         *            adjacent side of right-angled triangle<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @return angle of triangle: atan(b/a)<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        public static Dataset arctan2(final Object a, final Object b) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                return arctan2(a, b, null);<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span><a name="line.747"></a>
+<span class="sourceLineNo">748</span>        /**<a name="line.748"></a>
+<span class="sourceLineNo">749</span>         * @param a<a name="line.749"></a>
+<span class="sourceLineNo">750</span>         *            opposite side of right-angled triangle<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @param b<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         *            adjacent side of right-angled triangle<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         * @param o<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         *            output can be null - in which case, a new dataset is created<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         * @return angle of triangle: atan(b/a)<a name="line.755"></a>
+<span class="sourceLineNo">756</span>         */<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        public static Dataset arctan2(final Object a, final Object b, final Dataset o) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                it.setOutputDouble(true);<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                final Dataset result = it.getOutput();<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                final int is = result.getElementsPerItem();<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                final int as = da.getElementsPerItem();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                final int bs = db.getElementsPerItem();<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                final int dt = result.getDType();<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                switch (dt) {<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                case Dataset.BOOL:<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>                        while (it.hasNext()) {<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                                bdata[it.oIndex] = Math.atan2(it.aDouble, it.bDouble) != 0;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                        }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        break;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                case Dataset.INT8:<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>                        while (it.hasNext()) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                                i8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                        }<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                        break;<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                case Dataset.INT16:<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.784"></a>
+<span class="sourceLineNo">785</span><a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        while (it.hasNext()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                i16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        }<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        break;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                case Dataset.INT32:<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (it.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                i32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        break;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                case Dataset.INT64:<a name="line.797"></a>
+<span class="sourceLineNo">798</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>                        while (it.hasNext()) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                i64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        break;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                case Dataset.FLOAT32:<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.805"></a>
+<span class="sourceLineNo">806</span><a name="line.806"></a>
+<span class="sourceLineNo">807</span>                        while (it.hasNext()) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                                f32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                        break;<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                case Dataset.FLOAT64:<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>                        while (it.hasNext()) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                f64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                        }<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        break;<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                case Dataset.ARRAYINT8:<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                        if (is == 1) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                while (it.hasNext()) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                                }<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        } else if (as == 1) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                while (it.hasNext()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                                                ai8data[it.oIndex<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                                                                + j] = (byte) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.830"></a>
+<span class="sourceLineNo">831</span>                                        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                        } else if (bs == 1) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                while (it.hasNext()) {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                                ai8data[it.oIndex<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                                                + j] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        }<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        } else {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                while (it.hasNext()) {<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                                        ai8data[it.oIndex] = (byte) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                                                ai8data[it.oIndex + j] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                        }<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                }<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                        }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        break;<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                case Dataset.ARRAYINT16:<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>                        if (is == 1) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                while (it.hasNext()) {<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                                }<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        } else if (as == 1) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                                while (it.hasNext()) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.860"></a>
+<span class="sourceLineNo">861</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                                ai16data[it.oIndex<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                                                + j] = (short) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                                }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        } else if (bs == 1) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                                ai16data[it.oIndex<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                                                + j] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                        }<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        } else {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                while (it.hasNext()) {<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                        ai16data[it.oIndex] = (short) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                                ai16data[it.oIndex + j] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                        }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                        }<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        break;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                case Dataset.ARRAYINT32:<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        if (is == 1) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                                while (it.hasNext()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.889"></a>
+<span class="sourceLineNo">890</span>                                }<a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        } else if (as == 1) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                                                ai32data[it.oIndex<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                                                + j] = (int) toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                        }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        } else if (bs == 1) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                while (it.hasNext()) {<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                                                ai32data[it.oIndex<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                                                                + j] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                                        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                }<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        } else {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                        ai32data[it.oIndex] = (int) toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                                ai32data[it.oIndex + j] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        break;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                case Dataset.ARRAYINT64:<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.918"></a>
+<span class="sourceLineNo">919</span><a name="line.919"></a>
+<span class="sourceLineNo">920</span>                        if (is == 1) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                while (it.hasNext()) {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                }<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                        } else if (as == 1) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                while (it.hasNext()) {<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j)));<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                        }<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                }<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        } else if (bs == 1) {<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                while (it.hasNext()) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble));<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                                }<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                        } else {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                while (it.hasNext()) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        ai64data[it.oIndex] = toLong(Math.atan2(it.aDouble, it.bDouble));<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                                ai64data[it.oIndex + j] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                                                db.getElementDoubleAbs(it.bIndex + j)));<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                        break;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                case Dataset.ARRAYFLOAT32:<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                        float[] a32data = ((CompoundFloatDataset) result).getData();<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>                        if (is == 1) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                while (it.hasNext()) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                }<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                        } else if (as == 1) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                while (it.hasNext()) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else if (bs == 1) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                while (it.hasNext()) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                }<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                        } else {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                while (it.hasNext()) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                                        a32data[it.oIndex] = (float) Math.atan2(it.aDouble, it.bDouble);<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                                a32data[it.oIndex + j] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                        }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                                }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                        }<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        break;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                case Dataset.ARRAYFLOAT64:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        double[] a64data = ((CompoundDoubleDataset) result).getData();<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        if (is == 1) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                while (it.hasNext()) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                }<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        } else if (as == 1) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                while (it.hasNext()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                                a64data[it.oIndex + j] = Math.atan2(it.aDouble, db.getElementDoubleAbs(it.bIndex + j));<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                }<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                        } else if (bs == 1) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                while (it.hasNext()) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                                                a64data[it.oIndex + j] = Math.atan2(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        } else {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                while (it.hasNext()) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        a64data[it.oIndex] = Math.atan2(it.aDouble, it.bDouble);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        for (int j = 1; j &lt; is; j++) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                                a64data[it.oIndex + j] = Math.atan2(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                        }<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        break;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                default:<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        throw new UnsupportedOperationException("atan2 does not support multiple-element dataset");<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span><a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                addFunctionName(da, db, result, "atan2");<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                return result;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>        /**<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>         * Create a dataset of the arguments from a complex dataset<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>         * <a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>         * @param a<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>         * @return dataset of angles in radians<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>         */<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        public static Dataset angle(final Object a) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return angle(a, false, null);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>         * Create a dataset of the arguments from a complex dataset<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>         * <a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>         * @param a<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>         * @param inDegrees<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>         *            if true then return angles in degrees else in radians<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>         * @return dataset of angles<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>         */<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        public static Dataset angle(final Object a, final boolean inDegrees) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                return angle(a, inDegrees, null);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span><a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        /**<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>         * Create a dataset of the arguments from a complex dataset<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>         * <a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>         * @param a<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>         * @param o<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>         *            output can be null - in which case, a new dataset is created<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>         * @return dataset of angles in radians<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>         */<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        public static Dataset angle(final Object a, final Dataset o) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                return angle(a, false, o);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        }<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span><a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        /**<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>         * Create a dataset of the arguments from a complex dataset<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>         * <a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>         * @param a<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>         * @param inDegrees<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>         *            if true then return angles in degrees else in radians<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>         * @param o<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>         *            output can be null - in which case, a new dataset is created<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>         * @return dataset of angles<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>         */<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        public static Dataset angle(final Object a, final boolean inDegrees, final Dataset o) {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span><a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                if (!da.isComplex()) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                        throw new UnsupportedOperationException("angle does not support this dataset type");<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span><a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, false, false);<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                final Dataset result = it.getOutput();<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                final int is = result.getElementsPerItem();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                final int dt = result.getDType();<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                switch (dt) {<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                case Dataset.INT8:<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                        final byte[] oi8data = ((ByteDataset) result).data;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                        it.setOutputDouble(false);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                        if (inDegrees) {<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                while (it.hasNext()) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        oi8data[it.oIndex] = (byte) toLong(<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                        } else {<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                while (it.hasNext()) {<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        oi8data[it.oIndex] = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                        }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                        break;<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                case Dataset.INT16:<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                        final short[] oi16data = ((ShortDataset) result).data;<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        it.setOutputDouble(false);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span><a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        if (inDegrees) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                while (it.hasNext()) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                        oi16data[it.oIndex] = (short) toLong(<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                        } else {<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                while (it.hasNext()) {<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        oi16data[it.oIndex] = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                }<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                        break;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                case Dataset.INT32:<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        final int[] oi32data = ((IntegerDataset) result).data;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                        it.setOutputDouble(false);<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span><a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                        if (inDegrees) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                while (it.hasNext()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                        oi32data[it.oIndex] = (int) toLong(<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                        } else {<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                while (it.hasNext()) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        oi32data[it.oIndex] = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                        }<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                        break;<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                case Dataset.INT64:<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                        final long[] oi64data = ((LongDataset) result).data;<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                        it.setOutputDouble(false);<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span><a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                        if (inDegrees) {<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                        oi64data[it.oIndex] = toLong(<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                }<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                        } else {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                while (it.hasNext()) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        oi64data[it.oIndex] = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                }<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                        }<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                        break;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                case Dataset.ARRAYINT8:<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                        final byte[] oai8data = ((CompoundByteDataset) result).data;<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        it.setOutputDouble(false);<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span><a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                        if (inDegrees) {<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                while (it.hasNext()) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                        final byte ox = (byte) toLong(<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                                oai8data[it.oIndex + j] = ox;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                        }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                }<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        } else {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        final byte ox = (byte) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                                oai8data[it.oIndex + j] = ox;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                        }<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                }<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                        }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                        break;<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                case Dataset.ARRAYINT16:<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                        final short[] oai16data = ((CompoundShortDataset) result).data;<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        it.setOutputDouble(false);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                        if (inDegrees) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                while (it.hasNext()) {<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        final short ox = (short) toLong(<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                                oai16data[it.oIndex + j] = ox;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                        } else {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                                while (it.hasNext()) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                        final short ox = (short) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                                oai16data[it.oIndex + j] = ox;<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        }<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                case Dataset.ARRAYINT32:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        final int[] oai32data = ((CompoundIntegerDataset) result).data;<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                        it.setOutputDouble(false);<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                        if (inDegrees) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                while (it.hasNext()) {<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                        final int ox = (int) toLong(<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                                oai32data[it.oIndex + j] = ox;<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                        }<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                }<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                        } else {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                while (it.hasNext()) {<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                        final int ox = (int) toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                oai32data[it.oIndex + j] = ox;<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                        }<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                }<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                        }<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                        break;<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                case Dataset.ARRAYINT64:<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        final long[] oai64data = ((CompoundLongDataset) result).data;<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                        it.setOutputDouble(false);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span><a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                        if (inDegrees) {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                while (it.hasNext()) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        final long ox = toLong(<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                                        Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble)));<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                                oai64data[it.oIndex + j] = ox;<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                                }<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        } else {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                                while (it.hasNext()) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                        final long ox = toLong(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                                oai64data[it.oIndex + j] = ox;<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                }<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                        }<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                        break;<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                case Dataset.FLOAT32:<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                        final float[] of32data = ((FloatDataset) result).data;<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span><a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        if (inDegrees) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (it.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        of32data[it.oIndex] = (float) Math<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                }<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                        } else {<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                while (it.hasNext()) {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        of32data[it.oIndex] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                }<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                        break;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                case Dataset.FLOAT64:<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                        final double[] of64data = ((DoubleDataset) result).data;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span><a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        if (inDegrees) {<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                while (it.hasNext()) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        of64data[it.oIndex] = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                }<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        } else {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        of64data[it.oIndex] = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        }<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                        break;<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                case Dataset.ARRAYFLOAT32:<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                        final float[] oaf32data = ((CompoundFloatDataset) result).data;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span><a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                        if (inDegrees) {<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                while (it.hasNext()) {<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                        final float ox = (float) Math<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                oaf32data[it.oIndex + j] = ox;<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                        } else {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                while (it.hasNext()) {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        final float ox = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                                oaf32data[it.oIndex + j] = ox;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                        }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                        break;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                case Dataset.ARRAYFLOAT64:<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                        final double[] oaf64data = ((CompoundDoubleDataset) result).data;<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span><a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                        if (inDegrees) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                while (it.hasNext()) {<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        final double ox = Math.toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        }<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                }<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                        } else {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                while (it.hasNext()) {<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        final double ox = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                oaf64data[it.oIndex + j] = ox;<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                        }<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                }<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                        break;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                case Dataset.COMPLEX64:<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                        final float[] oc64data = ((ComplexFloatDataset) result).data;<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span><a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                        if (inDegrees) {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                while (it.hasNext()) {<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        oc64data[it.oIndex] = (float) Math<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                        oc64data[it.oIndex + 1] = 0;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        } else {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                while (it.hasNext()) {<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                        oc64data[it.oIndex] = (float) Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                        oc64data[it.oIndex + 1] = 0;<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                }<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                        }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        break;<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                case Dataset.COMPLEX128:<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                        final double[] oc128data = ((ComplexDoubleDataset) result).data;<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span><a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                        if (inDegrees) {<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                while (it.hasNext()) {<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        oc128data[it.oIndex] = Math<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                        .toDegrees(Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble));<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        oc128data[it.oIndex + 1] = 0;<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                }<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                        } else {<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                while (it.hasNext()) {<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                        oc128data[it.oIndex] = Math.atan2(da.getElementDoubleAbs(it.aIndex + 1), it.aDouble);<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        oc128data[it.oIndex + 1] = 0;<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                        }<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                        break;<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                default:<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                        throw new IllegalArgumentException("angle does not support this dataset type");<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span><a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                addFunctionName(result, "angle");<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span><a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                return result;<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>        }<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span><a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>        /**<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>         * Create a phase only dataset. NB it will contain NaNs if there are any<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>         * items with zero amplitude<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>         * <a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>         * @param a<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>         *            dataset<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>         * @param keepZeros<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>         *            if true then zero items are returned as zero rather than NaNs<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>         * @return complex dataset where items have unit amplitude<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>         */<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>        public static Dataset phaseAsComplexNumber(final Object a, final boolean keepZeros) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                return phaseAsComplexNumber(a, null, keepZeros);<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>        }<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span><a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        /**<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>         * Create a phase only dataset. NB it will contain NaNs if there are any<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>         * items with zero amplitude<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>         * <a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>         * @param a<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>         *            dataset<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>         * @param o<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>         *            output can be null - in which case, a new dataset is created<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>         * @param keepZeros<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>         *            if true then zero items are returned as zero rather than NaNs<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>         * @return complex dataset where items have unit amplitude<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>         */<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>        public static Dataset phaseAsComplexNumber(final Object a, final Dataset o, final boolean keepZeros) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span><a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                if (!da.isComplex()) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                        throw new IllegalArgumentException("Input dataset is not of complex type");<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                Dataset result = o == null ? DatasetFactory.zeros(da) : o;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                if (!result.isComplex()) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                        throw new IllegalArgumentException("Output dataset is not of complex type");<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                }<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                final int dt = result.getDType();<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, result);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span><a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                switch (dt) {<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                case Dataset.COMPLEX64:<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                        float[] z64data = ((ComplexFloatDataset) result).getData();<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                        if (keepZeros) {<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                        double rr = it.aDouble;<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                        double am = Math.hypot(rr, ri);<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                        if (am == 0) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                z64data[it.oIndex] = 0;<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                z64data[it.oIndex + 1] = 0;<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                z64data[it.oIndex] = (float) (rr / am);<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                z64data[it.oIndex + 1] = (float) (ri / am);<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                        }<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                }<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                        } else {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                while (it.hasNext()) {<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                        double rr = it.aDouble;<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        double am = Math.hypot(rr, ri);<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                        z64data[it.oIndex] = (float) (rr / am);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                                        z64data[it.oIndex + 1] = (float) (ri / am);<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                }<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                        }<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                        break;<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                case Dataset.COMPLEX128:<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                        double[] z128data = ((ComplexDoubleDataset) result).getData();<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span><a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                        if (keepZeros) {<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                while (it.hasNext()) {<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        double rr = it.aDouble;<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        double am = Math.hypot(rr, ri);<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                        if (am == 0) {<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                z128data[it.oIndex] = 0;<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                z128data[it.oIndex + 1] = 0;<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                        } else {<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                z128data[it.oIndex] = rr / am;<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                                z128data[it.oIndex + 1] = ri / am;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                        }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                        } else {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                while (it.hasNext()) {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                        double rr = it.aDouble;<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                        double ri = da.getElementDoubleAbs(it.aIndex + 1);<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                        double am = Math.hypot(rr, ri);<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                        z128data[it.oIndex] = rr / am;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        z128data[it.oIndex + 1] = ri / am;<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                }<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span><a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                addFunctionName(result, "phase");<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                return result;<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>        }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span><a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>        /**<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>         * Adds all sets passed in together<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>         * <a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>         * The first IDataset must cast to Dataset<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>         * <a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>         * For memory efficiency sake if add(...) is called with a set of size one,<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>         * no clone is done, the original object is returned directly. Otherwise a<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>         * new data set is returned, the sum of those passed in.<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>         * <a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>         * @param sets<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>         * @param requireClone<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>         * @return sum of collection<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>         */<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>        public static Dataset add(final Collection&lt;IDataset&gt; sets, boolean requireClone) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                if (sets.isEmpty())<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                        return null;<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                if (sets.size() == 1)<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                        return DatasetUtils.convertToDataset(it.next());<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span><a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                Dataset sum = requireClone ? ((Dataset) it.next()).clone() : (Dataset) it.next();<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                while (it.hasNext()) {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                        add(sum, it.next(), sum);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span><a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                return sum;<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>        }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>        /**<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>         * Multiplies all sets passed in together<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>         * <a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>         * The first IDataset must cast to Dataset<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>         * <a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>         * @param sets<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>         * @param requireClone<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>         * @return product of collection<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>         */<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>        public static Dataset multiply(final Collection&lt;IDataset&gt; sets, boolean requireClone) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                if (sets.isEmpty())<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                        return null;<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                final Iterator&lt;IDataset&gt; it = sets.iterator();<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                if (sets.size() == 1)<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                        return DatasetUtils.convertToDataset(it.next());<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                Dataset product = requireClone ? ((Dataset) it.next()).clone() : (Dataset) it.next();<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span><a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                while (it.hasNext()) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        multiply(product, it.next(), product);<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                return product;<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>        }<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span><a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>        /**<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>         * Linearly interpolate values at points in a 1D dataset corresponding to<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>         * given coordinates.<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>         * <a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>         * @param x<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>         *            input 1-D coordinate dataset (must be ordered)<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>         * @param d<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>         *            input 1-D dataset<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>         * @param x0<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>         *            coordinate values<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>         * @param left<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>         *            value to use when x0 lies left of domain. If null, then<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>         *            interpolate to zero by using leftmost interval<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>         * @param right<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>         *            value to use when x0 lies right of domain. If null, then<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>         *            interpolate to zero by using rightmost interval<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>         * @return interpolated values<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>         */<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>        public static Dataset interpolate(final Dataset x, final Dataset d, final IDataset x0, Number left, Number right) {<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                assert x.getRank() == 1;<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                assert d.getRank() == 1;<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span><a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                DoubleDataset r = DatasetFactory.zeros(DoubleDataset.class, x0.getShape());<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span><a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                Monotonicity mono = Comparisons.findMonotonicity(x);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                if (mono == Monotonicity.NOT_ORDERED) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                        throw new IllegalArgumentException("Dataset x must be ordered");<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                DoubleDataset dx = (DoubleDataset) DatasetUtils.cast(x, Dataset.FLOAT64);<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                Dataset dx0 = DatasetUtils.convertToDataset(x0);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                if (x == dx) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                        dx = (DoubleDataset) x.flatten();<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                }<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                double[] xa = dx.getData();<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                int s = xa.length - 1;<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                boolean isReversed = mono == Monotonicity.STRICTLY_DECREASING || mono == Monotonicity.NONINCREASING;<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                if (isReversed) {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                        double[] txa = xa.clone();<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                        for (int i = 0; i &lt;= s; i++) { // reverse order<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                txa[s - i] = xa[i];<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                        }<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                        xa = txa;<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                }<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span><a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                IndexIterator it = dx0.getIterator();<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                int k = -1;<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                while (it.hasNext()) {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                        k++;<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        double v = dx0.getElementDoubleAbs(it.index);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                        int i = Arrays.binarySearch(xa, v);<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                        if (i &lt; 0) {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                // i = -(insertion point) - 1<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                if (i == -1) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                        if (left != null) {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                r.setAbs(k, left.doubleValue());<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                continue;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                        }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        final double d1 = xa[0] - xa[1];<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                        double t = d1 - v + xa[0];<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        if (t &gt;= 0)<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                continue; // sets to zero<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                        t /= d1;<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                        r.setAbs(k, t * d.getDouble(isReversed ? s : 0));<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                } else if (i == -s - 2) {<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                        if (right != null) {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                r.setAbs(k, right.doubleValue());<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                                continue;<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        }<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                        final double d1 = xa[s] - xa[s - 1];<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                        double t = d1 - v + xa[s];<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                        if (t &lt;= 0)<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                continue; // sets to zero<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                        t /= d1;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                        r.setAbs(k, t * d.getDouble(isReversed ? 0 : s));<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                } else {<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                        i = -i - 1;<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        double t = (xa[i] - v) / (xa[i] - xa[i - 1]);<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                        if (isReversed) {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                                i = s - i;<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                                r.setAbs(k, t * d.getDouble(i + 1) + (1 - t) * d.getDouble(i));<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                        } else {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                r.setAbs(k, (1 - t) * d.getDouble(i) + t * d.getDouble(i - 1));<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                        }<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                }<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                        } else {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                r.setAbs(k, d.getDouble(isReversed ? s - i : i));<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                        }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                return r;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>        }<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span><a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>        /**<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>         * Linearly interpolate a value at a point in a 1D dataset. The dataset is<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>         * outside are interpolated from the boundary value to zero.<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>         * <a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>         * @param d<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>         *            input dataset<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>         * @param x0<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>         *            coordinate<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>         * @return interpolated value<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>         */<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>        public static double interpolate(final Dataset d, final double x0) {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                assert d.getRank() == 1;<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span><a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                final int i0 = (int) Math.floor(x0);<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                final int e0 = d.getSize() - 1;<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                if (i0 &lt; -1 || i0 &gt; e0)<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                        return 0;<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span><a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                final double u0 = x0 - i0;<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                double r = 0;<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                final double f1 = i0 &lt; 0 ? 0 : d.getDouble(i0);<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                if (u0 &gt; 0) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        r = (1 - u0) * f1 + (i0 == e0 ? 0 : u0 * d.getDouble(i0 + 1));<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                } else {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                        r = f1;<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                }<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                return r;<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span><a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        /**<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>         * Linearly interpolate a value at a point in a 1D dataset with a mask. The<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>         * points just outside are interpolated from the boundary value to zero.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>         * <a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>         * @param d<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>         *            input dataset<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>         * @param m<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>         *            mask dataset<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>         * @param x0<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>         *            coordinate<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>         * @return interpolated value<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>         */<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>        public static double interpolate(final Dataset d, final Dataset m, final double x0) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                assert d.getRank() == 1;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                assert m.getRank() == 1;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span><a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                final int i0 = (int) Math.floor(x0);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                final int e0 = d.getSize() - 1;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                if (i0 &lt; -1 || i0 &gt; e0)<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                        return 0;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span><a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                final double u0 = x0 - i0;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span><a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                double r = 0;<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>                final double f1 = i0 &lt; 0 ? 0 : d.getDouble(i0) * m.getDouble(i0);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                if (u0 &gt; 0) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                        r = (1 - u0) * f1 + (i0 == e0 ? 0 : u0 * d.getDouble(i0 + 1) * m.getDouble(i0 + 1));<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                } else {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                        r = f1;<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                return r;<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>        }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span><a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>        /**<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>         * Linearly interpolate an array of values at a point in a compound 1D<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>         * dataset. The dataset is considered to have zero support outside its<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>         * bounds. Thus points just outside are interpolated from the boundary value<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>         * to zero.<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>         * <a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>         * @param values<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>         *            interpolated array<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>         * @param d<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>         *            input dataset<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>         * @param x0<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>         *            coordinate<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>         */<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double x0) {<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                assert d.getRank() == 1;<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span><a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                final int is = d.getElementsPerItem();<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                if (is != values.length)<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>                final double[] f1, f2;<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span><a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                final int i0 = (int) Math.floor(x0);<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                final int e0 = d.getSize() - 1;<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                if (i0 &lt; -1 || i0 &gt; e0) {<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        Arrays.fill(values, 0);<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                        return;<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                }<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                final double u0 = x0 - i0;<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span><a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                if (u0 &gt; 0) {<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                        f1 = new double[is];<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                        if (i0 &gt;= 0)<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                d.getDoubleArray(f1, i0);<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                        double t = 1 - u0;<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                        if (i0 == e0) {<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                        values[j] = t * f1[j];<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                        } else {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                f2 = new double[is];<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                d.getDoubleArray(f2, i0 + 1);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        values[j] = t * f1[j] + u0 * f2[j];<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                        }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                } else {<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        if (i0 &gt;= 0)<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                                d.getDoubleArray(values, i0);<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        else<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>                                Arrays.fill(values, 0);<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                }<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>        }<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span><a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>        /**<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>         * Linearly interpolate a value at a point in a 2D dataset. The dataset is<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>         * outside are interpolated from the boundary value to zero.<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>         * <a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>         * @param d<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>         *            input dataset<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>         * @param x0<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>         *            coordinate<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>         * @param x1<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>         *            coordinate<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>         * @return bilinear interpolation<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>         */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>        public static double interpolate(final Dataset d, final double x0, final double x1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                final int[] s = d.getShape();<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                assert s.length == 2;<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                final int e0 = s[0] - 1;<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                final int e1 = s[1] - 1;<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                final int i0 = (int) Math.floor(x0);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                final int i1 = (int) Math.floor(x1);<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                final double u0 = x0 - i0;<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                final double u1 = x1 - i1;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1)<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                        return 0;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span><a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                // use bilinear interpolation<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                double r = 0;<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                final double f1, f2, f3, f4;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                f1 = i0 &lt; 0 || i1 &lt; 0 ? 0 : d.getDouble(i0, i1);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                if (u1 &gt; 0) {<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                        if (u0 &gt; 0) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                if (i0 == e0) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                        f2 = 0;<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                        f4 = 0;<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                        f3 = i1 == e1 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                } else {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        f2 = i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                        if (i1 == e1) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                f4 = 0;<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                f3 = 0;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                                f4 = d.getDouble(i0 + 1, i1 + 1);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                                f3 = i0 &lt; 0 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                }<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                r = (1 - u0) * (1 - u1) * f1 + u0 * (1 - u1) * f2 + (1 - u0) * u1 * f3 + u0 * u1 * f4;<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                        } else {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                f3 = i0 &lt; 0 || i1 == e1 ? 0 : d.getDouble(i0, i1 + 1);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                r = (1 - u1) * f1 + u1 * f3;<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                } else { // exactly on axis 1<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                        if (u0 &gt; 0) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                f2 = i0 == e0 || i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                r = (1 - u0) * f1 + u0 * f2;<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                        } else { // exactly on axis 0<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                r = f1;<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                        }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                return r;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>        /**<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>         * Linearly interpolate a value at a point in a 2D dataset with a mask. The<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>         * points just outside are interpolated from the boundary value to zero.<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>         * <a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>         * @param d<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>         *            input dataset<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>         * @param m<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>         *            mask dataset<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>         * @param x0<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>         *            coordinate<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>         * @param x1<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>         *            coordinate<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>         * @return bilinear interpolation<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>         */<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>        public static double interpolate(final Dataset d, final Dataset m, final double x0, final double x1) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                if (m == null)<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                        return interpolate(d, x0, x1);<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span><a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                final int[] s = d.getShape();<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                assert s.length == 2;<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                assert m.getRank() == 2;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span><a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                final int e0 = s[0] - 1;<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                final int e1 = s[1] - 1;<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                final int i0 = (int) Math.floor(x0);<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                final int i1 = (int) Math.floor(x1);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                final double u0 = x0 - i0;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                final double u1 = x1 - i1;<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1)<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                        return 0;<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span><a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                // use bilinear interpolation<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                double r = 0;<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                final double f1, f2, f3, f4;<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                f1 = i0 &lt; 0 || i1 &lt; 0 ? 0 : d.getDouble(i0, i1) * m.getDouble(i0, i1);<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                if (u1 &gt; 0) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                        if (i0 == e0) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                f2 = 0;<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                f4 = 0;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                                f3 = i1 == e1 ? 0 : d.getDouble(i0, i1 + 1) * m.getDouble(i0, i1 + 1);<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                        } else {<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                f2 = i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1) * m.getDouble(i0 + 1, i1);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                if (i1 == e1) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                        f4 = 0;<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                        f3 = 0;<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                } else {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                        f4 = d.getDouble(i0 + 1, i1 + 1) * m.getDouble(i0 + 1, i1 + 1);<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                        f3 = i0 &lt; 0 ? 0 : d.getDouble(i0, i1 + 1) * m.getDouble(i0, i1 + 1);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                        }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                        r = (1 - u0) * (1 - u1) * f1 + u0 * (1 - u1) * f2 + (1 - u0) * u1 * f3 + u0 * u1 * f4;<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                } else { // exactly on axis 1<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                        if (u0 &gt; 0) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                f2 = i0 == e0 || i1 &lt; 0 ? 0 : d.getDouble(i0 + 1, i1) * m.getDouble(i0 + 1, i1);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                r = (1 - u0) * f1 + u0 * f2;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                        } else { // exactly on axis 0<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                r = f1;<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                        }<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                return r;<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>        }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span><a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>        /**<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>         * Linearly interpolate an array of values at a point in a compound 2D<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>         * dataset. The dataset is considered to have zero support outside its<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>         * bounds. Thus points just outside are interpolated from the boundary value<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>         * to zero.<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>         * <a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>         * @param values<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>         *            bilinear interpolated array<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>         * @param d<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>         * @param x0<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>         * @param x1<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>         */<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double x0, final double x1) {<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                final int[] s = d.getShapeRef();<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                assert s.length == 2;<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span><a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                final int is = d.getElementsPerItem();<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                if (is != values.length)<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span><a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                final int e0 = s[0] - 1;<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                final int e1 = s[1] - 1;<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                final int i0 = (int) Math.floor(x0);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                final int i1 = (int) Math.floor(x1);<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                final double u0 = x0 - i0;<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                final double u1 = x1 - i1;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                if (i0 &lt; -1 || i0 &gt; e0 || i1 &lt; -1 || i1 &gt; e1) {<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                        Arrays.fill(values, 0);<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                        return;<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                }<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                // use bilinear interpolation<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                double[] f1 = new double[is];<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                if (i0 &gt;= 0 &amp;&amp; i1 &gt;= 0)<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                        d.getDoubleArray(f1, i0, i1);<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span><a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                if (u1 &gt; 0) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                        if (u0 &gt; 0) {<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                double[] f2 = new double[is];<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                                double[] f3 = new double[is];<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                                double[] f4 = new double[is];<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                                if (i0 != e0) {<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                                        if (i1 != e1)<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                                                d.getDoubleArray(f3, i0 + 1, i1 + 1);<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>                                        if (i1 &gt;= 0)<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                                                d.getDoubleArray(f4, i0 + 1, i1);<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                }<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                if (i0 &gt;= 0 &amp;&amp; i1 != e1)<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                        d.getDoubleArray(f2, i0, i1 + 1);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                final double t0 = 1 - u0;<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                final double t1 = 1 - u1;<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                final double w1 = t0 * t1;<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                final double w2 = t0 * u1;<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                final double w3 = u0 * u1;<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                final double w4 = u0 * t1;<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                        values[j] = w1 * f1[j] + w2 * f2[j] + w3 * f3[j] + w4 * f4[j];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                        } else {<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                double[] f2 = new double[is];<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                if (i0 &gt;= 0 &amp;&amp; i1 != e1)<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                        d.getDoubleArray(f2, i0, i1 + 1);<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                final double t1 = 1 - u1;<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                        values[j] = t1 * f1[j] + u1 * f2[j];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                } else { // exactly on axis 1<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        if (u0 &gt; 0) {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                double[] f4 = new double[is];<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                if (i0 != e0 &amp;&amp; i1 &gt;= 0)<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        d.getDoubleArray(f4, i0 + 1, i1);<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                final double t0 = 1 - u0;<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                for (int j = 0; j &lt; is; j++)<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                                        values[j] = t0 * f1[j] + u0 * f4[j];<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        } else { // exactly on axis 0<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                                if (i0 &gt;= 0 &amp;&amp; i1 &gt;= 0)<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                                        d.getDoubleArray(values, i0, i1);<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                                else<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>                                        Arrays.fill(values, 0);<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                        }<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                }<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>        }<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span><a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        /**<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>         * Linearly interpolate a value at a point in a n-D dataset. The dataset is<a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>         * outside are interpolated from the boundary value to zero. The number of<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>         * coordinates must match the rank of the dataset.<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>         * <a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>         * @param d<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>         *            input dataset<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>         * @param x<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>         *            coordinates<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>         * @return interpolated value<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>         */<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>        public static double interpolate(final Dataset d, final double... x) {<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                return interpolate(d, null, x);<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>        }<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span><a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>        /**<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>         * Linearly interpolate a value at a point in a n-D dataset with a mask. The<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>         * points just outside are interpolated from the boundary value to zero. The<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>         * number of coordinates must match the rank of the dataset.<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>         * <a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>         * @param d<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>         *            input dataset<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>         * @param m<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>         *            mask dataset (can be null)<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>         * @param x<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>         *            coordinates<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>         * @return interpolated value<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>         */<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        public static double interpolate(final Dataset d, final Dataset m, final double... x) {<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                int r = d.getRank();<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                if (r != x.length) {<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                        throw new IllegalArgumentException("Number of coordinates must be equal to rank of dataset");<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                }<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span><a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                switch (r) {<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                case 1:<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                        return m == null ? interpolate(d, x[0]) : interpolate(d, m, x[0]);<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                case 2:<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                        return m == null ? interpolate(d, x[0], x[1]) : interpolate(d, m, x[0], x[1]);<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                }<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span><a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                if (m != null &amp;&amp; r != m.getRank()) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                        throw new IllegalArgumentException("Rank of mask dataset must be equal to rank of dataset");<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span><a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                // now do it iteratively<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                int[] l = new int[r]; // lower indexes<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                double[] f = new double[r]; // fractions<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                for (int i = 0; i &lt; r; i++) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                        double xi = x[i];<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                        l[i] = (int) Math.floor(xi);<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                        f[i] = xi - l[i];<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                }<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span><a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                int[] s = d.getShape();<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span><a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                int n = 1 &lt;&lt; r;<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                double[] results = new double[n];<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span><a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                // iterate over permutations {l} and {l+1}<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                int[] twos = new int[r];<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>                Arrays.fill(twos, 2);<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>                PositionIterator it = new PositionIterator(twos);<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span>                int[] ip = it.getPos();<a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>                int j = 0;<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>                if (m == null) {<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>                        while (it.hasNext()) {<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>                                int[] p = l.clone();<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>                                boolean omit = false;<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>                                        int pi = p[i] + ip[i];<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>                                        if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>                                                omit = true;<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span>                                                break;<a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>                                        }<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>                                        p[i] = pi;<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>                                }<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>                                results[j++] = omit ? 0 : d.getDouble(p);<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>                        }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>                } else {<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>                        while (it.hasNext()) {<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>                                int[] p = l.clone();<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>                                boolean omit = false;<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span>                                for (int i = 0; i &lt; r; i++) {<a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>                                        int pi = p[i] + ip[i];<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>                                        if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>                                                omit = true;<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>                                                break;<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>                                        }<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>                                        p[i] = pi;<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>                                }<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>                                results[j++] = omit ? 0 : d.getDouble(p) * m.getDouble(p);<a name="line.1985"></a>
+<span class="sourceLineNo">1986</span>                        }<a name="line.1986"></a>
+<span class="sourceLineNo">1987</span>                }<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span><a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>                // reduce recursively<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>                for (int i = r - 1; i &gt;= 0; i--) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>                        results = combine(results, f[i], 1 &lt;&lt; i);<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>                }<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>                return results[0];<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>        }<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span><a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>        private static double[] combine(double[] values, double f, int n) {<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span>                double g = 1 - f;<a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>                double[] results = new double[n];<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>                for (int j = 0; j &lt; n; j++) {<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>                        int tj = 2 * j;<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>                        results[j] = g * values[tj] + f * values[tj + 1];<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>                }<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span><a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>                return results;<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span>        }<a name="line.2005"></a>
+<span class="sourceLineNo">2006</span><a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>        /**<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span>         * Linearly interpolate an array of values at a point in a compound n-D<a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>         * dataset. The dataset is considered to have zero support outside its<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>         * bounds. Thus points just outside are interpolated from the boundary value<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span>         * to zero.<a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>         * <a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>         * @param values<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>         *            linearly interpolated array<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>         * @param d<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>         * @param x<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span>         */<a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>        public static void interpolate(final double[] values, final CompoundDataset d, final double... x) {<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span>                int r = d.getRank();<a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>                if (r != x.length) {<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>                        throw new IllegalArgumentException("Number of coordinates must be equal to rank of dataset");<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>                }<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span><a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>                switch (r) {<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>                case 1:<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>                        interpolate(values, d, x[0]);<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>                        return;<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>                case 2:<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span>                        interpolate(values, d, x[0], x[1]);<a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>                        return;<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>                }<a name="line.2031"></a>
+<span class="sourceLineNo">2032</span><a name="line.2032"></a>
+<span class="sourceLineNo">2033</span>                final int is = d.getElementsPerItem();<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>                if (is != values.length)<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>                        throw new IllegalArgumentException("Output array length must match elements in item");<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span><a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>                // now do it iteratively<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>                int[] l = new int[r]; // lower indexes<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span>                double[] f = new double[r]; // fractions<a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>                for (int i = 0; i &lt; r; i++) {<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>                        double xi = x[i];<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>                        l[i] = (int) Math.floor(xi);<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>                        f[i] = xi - l[i];<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>                }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>                int[] s = d.getShape();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span><a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>                int n = 1 &lt;&lt; r;<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>                double[][] results = new double[n][is];<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span><a name="line.2050"></a>
+<span class="sourceLineNo">2051</span>                // iterate over permutations {l} and {l+1}<a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>                int[] twos = new int[r];<a name="line.2052"></a>
+<span class="sourceLineNo">2053</span>                Arrays.fill(twos, 2);<a name="line.2053"></a>
+<span class="sourceLineNo">2054</span>                PositionIterator it = new PositionIterator(twos);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span>                int[] ip = it.getPos();<a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>                int j = 0;<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>                while (it.hasNext()) {<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>                        int[] p = l.clone();<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>                        boolean omit = false;<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span>                        for (int i = 0; i &lt; r; i++) {<a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>                                int pi = p[i] + ip[i];<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>                                if (pi &lt; 0 || pi &gt;= s[i]) {<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span>                                        omit = true;<a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>                                        break;<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>                                }<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>                                p[i] = pi;<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>                        }<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>                        if (!omit) {<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>                                d.getDoubleArray(results[j++], p);<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>                        }<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>                }<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span><a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>                // reduce recursively<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>                for (int i = r - 1; i &gt;= 0; i--) {<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>                        results = combineArray(is, results, f[i], 1 &lt;&lt; i);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>                }<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>                for (int k = 0; k &lt; is; k++) {<a name="line.2077"></a>
+<span class="sourceLineNo">2078</span>                        values[k] = results[0][k];<a name="line.2078"></a>
+<span class="sourceLineNo">2079</span>                }<a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>        }<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span><a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>        private static double[][] combineArray(int is, double[][] values, double f, int n) {<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>                double g = 1 - f;<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>                double[][] results = new double[n][is];<a name="line.2084"></a>
+<span class="sourceLineNo">2085</span>                for (int j = 0; j &lt; n; j++) {<a name="line.2085"></a>
+<span class="sourceLineNo">2086</span>                        int tj = 2 * j;<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>                        for (int k = 0; k &lt; is; k++) {<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>                                results[j][k] = g * values[tj][k] + f * values[tj + 1][k];<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>                        }<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>                }<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span><a name="line.2091"></a>
+<span class="sourceLineNo">2092</span>                return results;<a name="line.2092"></a>
+<span class="sourceLineNo">2093</span>        }<a name="line.2093"></a>
+<span class="sourceLineNo">2094</span><a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>        /**<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>         * Linearly interpolate a value at a point in a 1D dataset. The dataset is<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>         * considered to have zero support outside its bounds. Thus points just<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>         * outside are interpolated from the boundary value to zero.<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>         * <a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>         * @param d<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>         *            input dataset<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>         * @param x0<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>         *            coordinate<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>         * @return interpolated value<a name="line.2104"></a>
+<span class="sourceLineNo">2105</span>         * @deprecated Use {@link #interpolate(Dataset, double)}<a name="line.2105"></a>
+<span class="sourceLineNo">2106</span>         */<a name="line.2106"></a>
+<span class="sourceLineNo">2107</span>        @Deprecated<a name="line.2107"></a>
+<span class="sourceLineNo">2108</span>        public static double getLinear(final IDataset d, final double x0) {<a name="line.2108"></a>
+<span class="sourceLineNo">2109</span>                return interpolate(DatasetUtils.convertToDataset(d), x0);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>        }<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span><a name="line.2111"></a>
+<span class="sourceLineNo">2112</span>        /**<a name="line.2112"></a>
+<span class="sourceLineNo">2113</span>         * Linearly interpolate a value at a point in a compound 1D dataset. The<a name="line.2113"></a>
+<span class="sourceLineNo">2114</span>         * dataset is considered to have zero support outside its bounds. Thus<a name="line.2114"></a>
+<span class="sourceLineNo">2115</span>         * points just outside are interpolated from the boundary value to zero.<a name="line.2115"></a>
+<span class="sourceLineNo">2116</span>         * <a name="line.2116"></a>
+<span class="sourceLineNo">2117</span>         * @param values<a name="line.2117"></a>
+<span class="sourceLineNo">2118</span>         *            interpolated array<a name="line.2118"></a>
+<span class="sourceLineNo">2119</span>         * @param d<a name="line.2119"></a>
+<span class="sourceLineNo">2120</span>         *            input dataset<a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>         * @param x0<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>         *            coordinate<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>         * @deprecated Use {@link #interpolate(double[], CompoundDataset, double)}<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>         */<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>        @Deprecated<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>        public static void getLinear(final double[] values, final CompoundDataset d, final double x0) {<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>                interpolate(values, d, x0);<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>        }<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span><a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>        /**<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>         * Interpolated a value from 2D dataset<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>         * <a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>         * @param d<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>         *            input dataset<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>         * @param x0<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>         *            coordinate<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>         * @param x1<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span>         *            coordinate<a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>         * @return bilinear interpolation<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>         * @deprecated Use {@link #interpolate(Dataset, double, double)}<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>         */<a name="line.2141"></a>
+<span class="sourceLineNo">2142</span>        @Deprecated<a name="line.2142"></a>
+<span class="sourceLineNo">2143</span>        public static double getBilinear(final IDataset d, final double x0, final double x1) {<a name="line.2143"></a>
+<span class="sourceLineNo">2144</span>                return interpolate(DatasetUtils.convertToDataset(d), x0, x1);<a name="line.2144"></a>
+<span class="sourceLineNo">2145</span>        }<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span><a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>        /**<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>         * Interpolated a value from 2D dataset with mask<a name="line.2148"></a>
+<span class="sourceLineNo">2149</span>         * <a name="line.2149"></a>
+<span class="sourceLineNo">2150</span>         * @param d<a name="line.2150"></a>
+<span class="sourceLineNo">2151</span>         *            input dataset<a name="line.2151"></a>
+<span class="sourceLineNo">2152</span>         * @param m<a name="line.2152"></a>
+<span class="sourceLineNo">2153</span>         *            mask dataset<a name="line.2153"></a>
+<span class="sourceLineNo">2154</span>         * @param x0<a name="line.2154"></a>
+<span class="sourceLineNo">2155</span>         *            coordinate<a name="line.2155"></a>
+<span class="sourceLineNo">2156</span>         * @param x1<a name="line.2156"></a>
+<span class="sourceLineNo">2157</span>         *            coordinate<a name="line.2157"></a>
+<span class="sourceLineNo">2158</span>         * @return bilinear interpolation<a name="line.2158"></a>
+<span class="sourceLineNo">2159</span>         * @deprecated Use {@link #interpolate(Dataset, Dataset, double, double)}<a name="line.2159"></a>
+<span class="sourceLineNo">2160</span>         */<a name="line.2160"></a>
+<span class="sourceLineNo">2161</span>        @Deprecated<a name="line.2161"></a>
+<span class="sourceLineNo">2162</span>        public static double getBilinear(final IDataset d, final IDataset m, final double x0, final double x1) {<a name="line.2162"></a>
+<span class="sourceLineNo">2163</span>                return interpolate(DatasetUtils.convertToDataset(d), DatasetUtils.convertToDataset(m), x0, x1);<a name="line.2163"></a>
+<span class="sourceLineNo">2164</span>        }<a name="line.2164"></a>
+<span class="sourceLineNo">2165</span><a name="line.2165"></a>
+<span class="sourceLineNo">2166</span>        /**<a name="line.2166"></a>
+<span class="sourceLineNo">2167</span>         * Interpolated a value from 2D compound dataset<a name="line.2167"></a>
+<span class="sourceLineNo">2168</span>         * <a name="line.2168"></a>
+<span class="sourceLineNo">2169</span>         * @param values<a name="line.2169"></a>
+<span class="sourceLineNo">2170</span>         *            bilinear interpolated array<a name="line.2170"></a>
+<span class="sourceLineNo">2171</span>         * @param d<a name="line.2171"></a>
+<span class="sourceLineNo">2172</span>         * @param x0<a name="line.2172"></a>
+<span class="sourceLineNo">2173</span>         * @param x1<a name="line.2173"></a>
+<span class="sourceLineNo">2174</span>         * @deprecated Use<a name="line.2174"></a>
+<span class="sourceLineNo">2175</span>         *             {@link #interpolate(double[], CompoundDataset, double, double)}<a name="line.2175"></a>
+<span class="sourceLineNo">2176</span>         */<a name="line.2176"></a>
+<span class="sourceLineNo">2177</span>        @Deprecated<a name="line.2177"></a>
+<span class="sourceLineNo">2178</span>        public static void getBilinear(final double[] values, final CompoundDataset d, final double x0, final double x1) {<a name="line.2178"></a>
+<span class="sourceLineNo">2179</span>                interpolate(values, d, x0, x1);<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>        }<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span><a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>        /**<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>         * generate binomial coefficients with negative sign:<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span>         * &lt;p&gt;<a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>         * <a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>         * &lt;pre&gt;<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>         *  (-1)^i n! / ( i! (n-i)! )<a name="line.2187"></a>
+<span class="sourceLineNo">2188</span>         * &lt;/pre&gt;<a name="line.2188"></a>
+<span class="sourceLineNo">2189</span>         * <a name="line.2189"></a>
+<span class="sourceLineNo">2190</span>         * @param n<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>         * @return array of coefficients<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>         */<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>        private static int[] bincoeff(final int n) {<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>                final int[] b = new int[n + 1];<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>                final int hn = n / 2;<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span><a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>                int bc = 1;<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>                b[0] = bc;<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>                for (int i = 1; i &lt;= hn; i++) {<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span>                        bc = -(bc * (n - i + 1)) / i;<a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>                        b[i] = bc;<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>                }<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>                if (n % 2 != 0) {<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>                        for (int i = hn + 1; i &lt;= n; i++) {<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span>                                b[i] = -b[n - i];<a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>                        }<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>                } else {<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>                        for (int i = hn + 1; i &lt;= n; i++) {<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>                                b[i] = b[n - i];<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span>                        }<a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>                }<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>                return b;<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>        }<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span><a name="line.2214"></a>
+<span class="sourceLineNo">2215</span>        /**<a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>         * 1st order discrete difference of dataset along flattened dataset using<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>         * finite difference<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>         * <a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>         * @param a<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span>         *            is 1d dataset<a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>         * @param out<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>         *            is 1d dataset<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>         */<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>        private static void difference(final Dataset a, final Dataset out) {<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span>                final int isize = a.getElementsPerItem();<a name="line.2225"></a>
+<span class="sourceLineNo">2226</span><a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>                final IndexIterator it = a.getIterator();<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>                if (!it.hasNext())<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>                        return;<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>                int oi = it.index;<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span><a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>                switch (a.getDType()) {<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>                case Dataset.INT8:<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span>                        final byte[] i8data = ((ByteDataset) a).data;<a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>                        for (int i = 0; it.hasNext();) {<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>                                oi8data[i++] = (byte) (i8data[it.index] - i8data[oi]);<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span>                                oi = it.index;<a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>                        }<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>                        break;<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>                case Dataset.INT16:<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span>                        final short[] i16data = ((ShortDataset) a).data;<a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>                        for (int i = 0; it.hasNext();) {<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>                                oi16data[i++] = (short) (i16data[it.index] - i16data[oi]);<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span>                                oi = it.index;<a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>                        }<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>                        break;<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>                case Dataset.INT32:<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>                        final int[] i32data = ((IntegerDataset) a).data;<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>                        for (int i = 0; it.hasNext();) {<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>                                oi32data[i++] = i32data[it.index] - i32data[oi];<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>                                oi = it.index;<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>                        }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span>                        break;<a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>                case Dataset.INT64:<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>                        final long[] i64data = ((LongDataset) a).data;<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>                        for (int i = 0; it.hasNext();) {<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span>                                oi64data[i++] = i64data[it.index] - i64data[oi];<a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>                                oi = it.index;<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>                        }<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>                        break;<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>                case Dataset.ARRAYINT8:<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>                        final byte[] ai8data = ((CompoundByteDataset) a).data;<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>                        for (int i = 0; it.hasNext();) {<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>                                        oai8data[i++] = (byte) (ai8data[it.index + k] - ai8data[oi++]);<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>                                }<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>                                oi = it.index;<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>                        }<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>                        break;<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>                case Dataset.ARRAYINT16:<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>                        final short[] ai16data = ((CompoundShortDataset) a).data;<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>                        for (int i = 0; it.hasNext();) {<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>                                        oai16data[i++] = (short) (ai16data[it.index + k] - ai16data[oi++]);<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>                                }<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span>                                oi = it.index;<a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>                        }<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>                        break;<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>                case Dataset.ARRAYINT32:<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).data;<a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span>                        for (int i = 0; it.hasNext();) {<a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>                                        oai32data[i++] = ai32data[it.index + k] - ai32data[oi++];<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>                                }<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>                                oi = it.index;<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>                        }<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>                        break;<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>                case Dataset.ARRAYINT64:<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>                        final long[] ai64data = ((CompoundLongDataset) a).data;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>                        for (int i = 0; it.hasNext();) {<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>                                        oai64data[i++] = ai64data[it.index + k] - ai64data[oi++];<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>                                }<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span>                                oi = it.index;<a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>                        }<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>                        break;<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>                case Dataset.FLOAT32:<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>                        final float[] f32data = ((FloatDataset) a).data;<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>                        for (int i = 0; it.hasNext();) {<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>                                of32data[i++] = f32data[it.index] - f32data[oi];<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>                                oi = it.index;<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>                        }<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>                        break;<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>                case Dataset.FLOAT64:<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>                        final double[] f64data = ((DoubleDataset) a).data;<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span>                        for (int i = 0; it.hasNext();) {<a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>                                of64data[i++] = f64data[it.index] - f64data[oi];<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>                                oi = it.index;<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>                        }<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>                        break;<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>                case Dataset.COMPLEX64:<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>                        final float[] c64data = ((ComplexFloatDataset) a).data;<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>                        for (int i = 0; it.hasNext();) {<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span>                                oc64data[i++] = c64data[it.index] - c64data[oi];<a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>                                oc64data[i++] = c64data[it.index + 1] - c64data[oi + 1];<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>                                oi = it.index;<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>                        }<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>                        break;<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>                case Dataset.COMPLEX128:<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>                        final double[] c128data = ((ComplexDoubleDataset) a).data;<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>                        for (int i = 0; it.hasNext();) {<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>                                oc128data[i++] = c128data[it.index] - c128data[oi];<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>                                oc128data[i++] = c128data[it.index + 1] - c128data[oi + 1];<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>                                oi = it.index;<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>                        }<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>                        break;<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>                case Dataset.ARRAYFLOAT32:<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>                        final float[] af32data = ((CompoundFloatDataset) a).data;<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>                        for (int i = 0; it.hasNext();) {<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>                                        oaf32data[i++] = af32data[it.index + k] - af32data[oi++];<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>                                }<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                                oi = it.index;<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>                        }<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>                        break;<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>                case Dataset.ARRAYFLOAT64:<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>                        final double[] af64data = ((CompoundDoubleDataset) a).data;<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>                        for (int i = 0; it.hasNext();) {<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>                                        oaf64data[i++] = af64data[it.index + k] - af64data[oi++];<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>                                }<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>                                oi = it.index;<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>                        }<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span>                        break;<a name="line.2358"></a>
+<span class="sourceLineNo">2359</span>                default:<a name="line.2359"></a>
+<span class="sourceLineNo">2360</span>                        throw new UnsupportedOperationException("difference does not support this dataset type");<a name="line.2360"></a>
+<span class="sourceLineNo">2361</span>                }<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>        }<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span><a name="line.2363"></a>
+<span class="sourceLineNo">2364</span>        /**<a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>         * Get next set of indexes<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>         * <a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>         * @param it<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span>         * @param indexes<a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>         * @return true if there is more<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>         */<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>        private static boolean nextIndexes(IndexIterator it, int[] indexes) {<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>                if (!it.hasNext())<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span>                        return false;<a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>                int m = indexes.length;<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>                int i = 0;<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>                for (i = 0; i &lt; m - 1; i++) {<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>                        indexes[i] = indexes[i + 1];<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span>                }<a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>                indexes[i] = it.index;<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>                return true;<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>        }<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span><a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>        /**<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>         * General order discrete difference of dataset along flattened dataset<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>         * using finite difference<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>         * <a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>         * @param a<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>         *            is 1d dataset<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>         * @param out<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>         *            is 1d dataset<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>         * @param n<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>         *            order of difference<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>         */<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>        private static void difference(final Dataset a, final Dataset out, final int n) {<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>                if (n == 1) {<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>                        difference(a, out);<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>                        return;<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>                }<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span><a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>                final int isize = a.getElementsPerItem();<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span><a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>                final int[] coeff = bincoeff(n);<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>                final int m = n + 1;<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>                final int[] indexes = new int[m]; // store for index values<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span><a name="line.2405"></a>
+<span class="sourceLineNo">2406</span>                final IndexIterator it = a.getIterator();<a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>                for (int i = 0; i &lt; n; i++) {<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>                        indexes[i] = it.index;<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>                        it.hasNext();<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>                }<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>                indexes[n] = it.index;<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span><a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>                switch (a.getDType()) {<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span>                case Dataset.INT8:<a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>                        final byte[] i8data = ((ByteDataset) a).data;<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>                                int ox = 0;<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>                                        ox += i8data[indexes[j]] * coeff[j];<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>                                }<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>                                oi8data[i++] = (byte) ox;<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>                        }<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>                        break;<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>                case Dataset.INT16:<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>                        final short[] i16data = ((ShortDataset) a).data;<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>                                int ox = 0;<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>                                        ox += i16data[indexes[j]] * coeff[j];<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>                                }<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span>                                oi16data[i++] = (short) ox;<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>                        }<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>                        break;<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>                case Dataset.INT32:<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>                        final int[] i32data = ((IntegerDataset) a).data;<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>                                int ox = 0;<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>                                        ox += i32data[indexes[j]] * coeff[j];<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>                                }<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>                                oi32data[i++] = ox;<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>                        }<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>                        break;<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>                case Dataset.INT64:<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span>                        final long[] i64data = ((LongDataset) a).data;<a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>                                long ox = 0;<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>                                        ox += i64data[indexes[j]] * coeff[j];<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>                                }<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>                                oi64data[i++] = ox;<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>                        }<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>                        break;<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span>                case Dataset.ARRAYINT8:<a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>                        final byte[] ai8data = ((CompoundByteDataset) a).data;<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>                        int[] box = new int[isize];<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>                                Arrays.fill(box, 0);<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>                                        double c = coeff[j];<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>                                        int l = indexes[j];<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>                                                box[k] += ai8data[l++] * c;<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span>                                        }<a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>                                }<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>                                        oai8data[i++] = (byte) box[k];<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span>                                }<a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>                        }<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>                        break;<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>                case Dataset.ARRAYINT16:<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>                        final short[] ai16data = ((CompoundShortDataset) a).data;<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>                        int[] sox = new int[isize];<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span>                                Arrays.fill(sox, 0);<a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>                                        double c = coeff[j];<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>                                        int l = indexes[j];<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span>                                                sox[k] += ai16data[l++] * c;<a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>                                        }<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>                                }<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>                                        oai16data[i++] = (short) sox[k];<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span>                                }<a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>                        }<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>                        break;<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>                case Dataset.ARRAYINT32:<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).data;<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>                        int[] iox = new int[isize];<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>                                Arrays.fill(iox, 0);<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span>                                        double c = coeff[j];<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>                                        int l = indexes[j];<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>                                                iox[k] += ai32data[l++] * c;<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>                                        }<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span>                                }<a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>                                        oai32data[i++] = iox[k];<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>                                }<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>                        }<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span>                        break;<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>                case Dataset.ARRAYINT64:<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>                        final long[] ai64data = ((CompoundLongDataset) a).data;<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>                        long[] lox = new long[isize];<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>                                Arrays.fill(lox, 0);<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>                                        double c = coeff[j];<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>                                        int l = indexes[j];<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>                                                lox[k] += ai64data[l++] * c;<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>                                        }<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>                                }<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>                                        oai64data[i++] = lox[k];<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>                                }<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>                        }<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>                        break;<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span>                case Dataset.FLOAT32:<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>                        final float[] f32data = ((FloatDataset) a).data;<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span>                                float ox = 0;<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>                                        ox += f32data[indexes[j]] * coeff[j];<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>                                }<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>                                of32data[i++] = ox;<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>                        }<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>                        break;<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>                case Dataset.FLOAT64:<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>                        final double[] f64data = ((DoubleDataset) a).data;<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>                                double ox = 0;<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>                                        ox += f64data[indexes[j]] * coeff[j];<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>                                }<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>                                of64data[i++] = ox;<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>                        }<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>                        break;<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>                case Dataset.COMPLEX64:<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>                        final float[] c64data = ((ComplexFloatDataset) a).data;<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>                                float ox = 0;<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>                                float oy = 0;<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>                                        int l = indexes[j];<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>                                        ox += c64data[l++] * coeff[j];<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>                                        oy += c64data[l] * coeff[j];<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span>                                }<a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>                                oc64data[i++] = ox;<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>                                oc64data[i++] = oy;<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>                        }<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>                        break;<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span>                case Dataset.COMPLEX128:<a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>                        final double[] c128data = ((ComplexDoubleDataset) a).data;<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>                                double ox = 0;<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span>                                double oy = 0;<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>                                        int l = indexes[j];<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>                                        ox += c128data[l++] * coeff[j];<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>                                        oy += c128data[l] * coeff[j];<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>                                }<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>                                oc128data[i++] = ox;<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>                                oc128data[i++] = oy;<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span>                        }<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>                        break;<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>                case Dataset.ARRAYFLOAT32:<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>                        final float[] af32data = ((CompoundFloatDataset) a).data;<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>                        float[] fox = new float[isize];<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>                                Arrays.fill(fox, 0);<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>                                        double c = coeff[j];<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>                                        int l = indexes[j];<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2591"></a>
+<span class="sourceLineNo">2592</span>                                                fox[k] += af32data[l++] * c;<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>                                        }<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>                                }<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>                                        oaf32data[i++] = fox[k];<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>                                }<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>                        }<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>                        break;<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>                case Dataset.ARRAYFLOAT64:<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>                        final double[] af64data = ((CompoundDoubleDataset) a).data;<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>                        double[] dox = new double[isize];<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>                        for (int i = 0; nextIndexes(it, indexes);) {<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>                                Arrays.fill(dox, 0);<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>                                for (int j = 0; j &lt; m; j++) {<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>                                        double c = coeff[j];<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>                                        int l = indexes[j];<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>                                        for (int k = 0; k &lt; isize; k++) {<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>                                                dox[k] += af64data[l++] * c;<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>                                        }<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>                                }<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>                                        oaf64data[i++] = dox[k];<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>                                }<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>                        }<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span>                        break;<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>                default:<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>                        throw new UnsupportedOperationException("difference does not support multiple-element dataset");<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>                }<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>        }<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span><a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>        /**<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>         * Discrete difference of dataset along axis using finite difference<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>         * <a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>         * @param a<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>         * @param n<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>         *            order of difference<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>         * @param axis<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>         * @return difference<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>         */<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>        public static Dataset difference(Dataset a, final int n, int axis) {<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>                Dataset ds;<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>                final Class&lt;? extends Dataset&gt; clazz = a.getClass();<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>                final int rank = a.getRank();<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>                final int is = a.getElementsPerItem();<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span><a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>                if (axis &lt; 0) {<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>                        axis += rank;<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span>                }<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>                        throw new IllegalArgumentException("Axis is out of range");<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>                }<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span><a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>                int[] nshape = a.getShape();<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>                if (nshape[axis] &lt;= n) {<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>                        nshape[axis] = 0;<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>                        return DatasetFactory.zeros(is, clazz, nshape);<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span>                }<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span><a name="line.2650"></a>
+<span class="sourceLineNo">2651</span>                nshape[axis] -= n;<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>                ds = DatasetFactory.zeros(is, clazz, nshape);<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>                if (rank == 1) {<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                        difference(DatasetUtils.convertToDataset(a), ds, n);<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                } else {<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>                        final Dataset src = DatasetFactory.zeros(is, clazz, a.getShapeRef()[axis]);<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>                        final Dataset dest = DatasetFactory.zeros(is, clazz, nshape[axis]);<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>                        final PositionIterator pi = a.getPositionIterator(axis);<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>                        final int[] pos = pi.getPos();<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>                        final boolean[] hit = pi.getOmit();<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>                        while (pi.hasNext()) {<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>                                a.copyItemsFromAxes(pos, hit, src);<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>                                difference(src, dest, n);<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>                                ds.setItemsOnAxes(pos, hit, dest.getBuffer());<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>                        }<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>                }<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span><a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>                return ds;<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span>        }<a name="line.2669"></a>
+<span class="sourceLineNo">2670</span><a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>        private static double SelectedMean(Dataset data, int Min, int Max) {<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span><a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>                double result = 0.0;<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>                for (int i = Min, imax = data.getSize(); i &lt;= Max; i++) {<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>                        // clip i appropriately, imagine that effectively the two ends<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>                        // continue<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>                        // straight out.<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>                        int pos = i;<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>                        if (pos &lt; 0) {<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>                                pos = 0;<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>                        } else if (pos &gt;= imax) {<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>                                pos = imax - 1;<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>                        }<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>                        result += data.getElementDoubleAbs(pos);<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>                }<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span><a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>                // now the sum is complete, average the values.<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>                result /= (Max - Min) + 1;<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>                return result;<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>        }<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span><a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>        private static void SelectedMeanArray(double[] out, Dataset data, int Min, int Max) {<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>                final int isize = out.length;<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>                for (int j = 0; j &lt; isize; j++)<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>                        out[j] = 0.;<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span><a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>                for (int i = Min, imax = data.getSize(); i &lt;= Max; i++) {<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>                        // clip i appropriately, imagine that effectively the two ends<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span>                        // continue<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>                        // straight out.<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>                        int pos = i * isize;<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>                        if (pos &lt; 0) {<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>                                pos = 0;<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>                        } else if (pos &gt;= imax) {<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>                                pos = imax - isize;<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>                        }<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>                        for (int j = 0; j &lt; isize; j++)<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>                                out[j] += data.getElementDoubleAbs(pos + j);<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>                }<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span><a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>                // now the sum is complete, average the values.<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>                double norm = 1. / (Max - Min + 1.);<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>                for (int j = 0; j &lt; isize; j++)<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>                        out[j] *= norm;<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span><a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>        }<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span><a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>        /**<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>         * Calculates the derivative of a line described by two datasets (x,y) given<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>         * a spread of n either side of the point<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>         * <a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>         * @param x<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>         *            The x values of the function to take the derivative of.<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>         * @param y<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>         *            The y values of the function to take the derivative of.<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>         * @param n<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>         *            The spread the derivative is calculated from, i.e. the<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>         *            smoothing, the higher the value, the more smoothing occurs.<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>         * @return A dataset which contains all the derivative point for point.<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>         */<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>        public static Dataset derivative(Dataset x, Dataset y, int n) {<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>                if (x.getRank() != 1 || y.getRank() != 1) {<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>                        throw new IllegalArgumentException("Only one dimensional dataset supported");<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>                }<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span>                if (y.getSize() &gt; x.getSize()) {<a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>                        throw new IllegalArgumentException("Length of x dataset should be greater than or equal to y's");<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>                }<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>                int dtype = y.getDType();<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>                Dataset result;<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>                switch (dtype) {<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>                case Dataset.BOOL:<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>                case Dataset.INT8:<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>                case Dataset.INT16:<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>                case Dataset.ARRAYINT8:<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span>                case Dataset.ARRAYINT16:<a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>                        result = DatasetFactory.zeros(y, FloatDataset.class);<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>                        break;<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>                case Dataset.INT32:<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>                case Dataset.INT64:<a name="line.2749"></a>
+<span class="sourceLineNo">2750</span>                case Dataset.ARRAYINT32:<a name="line.2750"></a>
+<span class="sourceLineNo">2751</span>                case Dataset.ARRAYINT64:<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>                        result = DatasetFactory.zeros(y, DoubleDataset.class);<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>                        break;<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>                case Dataset.FLOAT32:<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>                case Dataset.FLOAT64:<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>                case Dataset.COMPLEX64:<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span>                case Dataset.COMPLEX128:<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>                case Dataset.ARRAYFLOAT32:<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>                case Dataset.ARRAYFLOAT64:<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>                        result = DatasetFactory.zeros(y);<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>                        break;<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>                default:<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>                        throw new UnsupportedOperationException("derivative does not support multiple-element dataset");<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>                }<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span><a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>                final int isize = y.getElementsPerItem();<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>                if (isize == 1) {<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>                        for (int i = 0, imax = x.getSize(); i &lt; imax; i++) {<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>                                double LeftValue = SelectedMean(y, i - n, i - 1);<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>                                double RightValue = SelectedMean(y, i + 1, i + n);<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>                                double LeftPosition = SelectedMean(x, i - n, i - 1);<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span>                                double RightPosition = SelectedMean(x, i + 1, i + n);<a name="line.2772"></a>
+<span class="sourceLineNo">2773</span><a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>                                // now the values and positions are calculated, the derivative<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>                                // can be<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>                                // calculated.<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span>                                result.set(((RightValue - LeftValue) / (RightPosition - LeftPosition)), i);<a name="line.2777"></a>
+<span class="sourceLineNo">2778</span>                        }<a name="line.2778"></a>
+<span class="sourceLineNo">2779</span>                } else {<a name="line.2779"></a>
+<span class="sourceLineNo">2780</span>                        double[] leftValues = new double[isize];<a name="line.2780"></a>
+<span class="sourceLineNo">2781</span>                        double[] rightValues = new double[isize];<a name="line.2781"></a>
+<span class="sourceLineNo">2782</span>                        for (int i = 0, imax = x.getSize(); i &lt; imax; i++) {<a name="line.2782"></a>
+<span class="sourceLineNo">2783</span>                                SelectedMeanArray(leftValues, y, i - n, i - 1);<a name="line.2783"></a>
+<span class="sourceLineNo">2784</span>                                SelectedMeanArray(rightValues, y, i + 1, i + n);<a name="line.2784"></a>
+<span class="sourceLineNo">2785</span>                                double delta = SelectedMean(x, i - n, i - 1);<a name="line.2785"></a>
+<span class="sourceLineNo">2786</span>                                delta = 1. / (SelectedMean(x, i + 1, i + n) - delta);<a name="line.2786"></a>
+<span class="sourceLineNo">2787</span>                                for (int j = 0; j &lt; isize; j++) {<a name="line.2787"></a>
+<span class="sourceLineNo">2788</span>                                        rightValues[j] -= leftValues[j];<a name="line.2788"></a>
+<span class="sourceLineNo">2789</span>                                        rightValues[j] *= delta;<a name="line.2789"></a>
+<span class="sourceLineNo">2790</span>                                }<a name="line.2790"></a>
+<span class="sourceLineNo">2791</span>                                result.set(rightValues, i);<a name="line.2791"></a>
+<span class="sourceLineNo">2792</span>                        }<a name="line.2792"></a>
+<span class="sourceLineNo">2793</span>                }<a name="line.2793"></a>
+<span class="sourceLineNo">2794</span><a name="line.2794"></a>
+<span class="sourceLineNo">2795</span>                // set the name based on the changes made<a name="line.2795"></a>
+<span class="sourceLineNo">2796</span>                result.setName(y.getName() + "'");<a name="line.2796"></a>
+<span class="sourceLineNo">2797</span><a name="line.2797"></a>
+<span class="sourceLineNo">2798</span>                return result;<a name="line.2798"></a>
+<span class="sourceLineNo">2799</span>        }<a name="line.2799"></a>
+<span class="sourceLineNo">2800</span><a name="line.2800"></a>
+<span class="sourceLineNo">2801</span>        /**<a name="line.2801"></a>
+<span class="sourceLineNo">2802</span>         * Discrete difference of dataset along axis using finite central difference<a name="line.2802"></a>
+<span class="sourceLineNo">2803</span>         * <a name="line.2803"></a>
+<span class="sourceLineNo">2804</span>         * @param a<a name="line.2804"></a>
+<span class="sourceLineNo">2805</span>         * @param axis<a name="line.2805"></a>
+<span class="sourceLineNo">2806</span>         * @return difference<a name="line.2806"></a>
+<span class="sourceLineNo">2807</span>         */<a name="line.2807"></a>
+<span class="sourceLineNo">2808</span>        public static Dataset centralDifference(Dataset a, int axis) {<a name="line.2808"></a>
+<span class="sourceLineNo">2809</span>                Dataset ds;<a name="line.2809"></a>
+<span class="sourceLineNo">2810</span>                final Class&lt;? extends Dataset&gt; clazz = a.getClass();<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>                final int rank = a.getRank();<a name="line.2811"></a>
+<span class="sourceLineNo">2812</span>                final int is = a.getElementsPerItem();<a name="line.2812"></a>
+<span class="sourceLineNo">2813</span><a name="line.2813"></a>
+<span class="sourceLineNo">2814</span>                if (axis &lt; 0) {<a name="line.2814"></a>
+<span class="sourceLineNo">2815</span>                        axis += rank;<a name="line.2815"></a>
+<span class="sourceLineNo">2816</span>                }<a name="line.2816"></a>
+<span class="sourceLineNo">2817</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.2817"></a>
+<span class="sourceLineNo">2818</span>                        throw new IllegalArgumentException("Axis is out of range");<a name="line.2818"></a>
+<span class="sourceLineNo">2819</span>                }<a name="line.2819"></a>
+<span class="sourceLineNo">2820</span><a name="line.2820"></a>
+<span class="sourceLineNo">2821</span>                final int len = a.getShapeRef()[axis];<a name="line.2821"></a>
+<span class="sourceLineNo">2822</span>                if (len &lt; 2) {<a name="line.2822"></a>
+<span class="sourceLineNo">2823</span>                        throw new IllegalArgumentException("Dataset should have a size &gt; 1 along given axis");<a name="line.2823"></a>
+<span class="sourceLineNo">2824</span>                }<a name="line.2824"></a>
+<span class="sourceLineNo">2825</span>                ds = DatasetFactory.zeros(is, clazz, a.getShapeRef());<a name="line.2825"></a>
+<span class="sourceLineNo">2826</span>                if (rank == 1) {<a name="line.2826"></a>
+<span class="sourceLineNo">2827</span>                        centralDifference(a, ds);<a name="line.2827"></a>
+<span class="sourceLineNo">2828</span>                } else {<a name="line.2828"></a>
+<span class="sourceLineNo">2829</span>                        final Dataset src = DatasetFactory.zeros(is, clazz, len);<a name="line.2829"></a>
+<span class="sourceLineNo">2830</span>                        final Dataset dest = DatasetFactory.zeros(is, clazz, len);<a name="line.2830"></a>
+<span class="sourceLineNo">2831</span>                        final PositionIterator pi = a.getPositionIterator(axis);<a name="line.2831"></a>
+<span class="sourceLineNo">2832</span>                        final int[] pos = pi.getPos();<a name="line.2832"></a>
+<span class="sourceLineNo">2833</span>                        final boolean[] hit = pi.getOmit();<a name="line.2833"></a>
+<span class="sourceLineNo">2834</span>                        while (pi.hasNext()) {<a name="line.2834"></a>
+<span class="sourceLineNo">2835</span>                                a.copyItemsFromAxes(pos, hit, src);<a name="line.2835"></a>
+<span class="sourceLineNo">2836</span>                                centralDifference(src, dest);<a name="line.2836"></a>
+<span class="sourceLineNo">2837</span>                                ds.setItemsOnAxes(pos, hit, dest.getBuffer());<a name="line.2837"></a>
+<span class="sourceLineNo">2838</span>                        }<a name="line.2838"></a>
+<span class="sourceLineNo">2839</span>                }<a name="line.2839"></a>
+<span class="sourceLineNo">2840</span><a name="line.2840"></a>
+<span class="sourceLineNo">2841</span>                return ds;<a name="line.2841"></a>
+<span class="sourceLineNo">2842</span>        }<a name="line.2842"></a>
+<span class="sourceLineNo">2843</span><a name="line.2843"></a>
+<span class="sourceLineNo">2844</span>        /**<a name="line.2844"></a>
+<span class="sourceLineNo">2845</span>         * 1st order discrete difference of dataset along flattened dataset using<a name="line.2845"></a>
+<span class="sourceLineNo">2846</span>         * central difference<a name="line.2846"></a>
+<span class="sourceLineNo">2847</span>         * <a name="line.2847"></a>
+<span class="sourceLineNo">2848</span>         * @param a<a name="line.2848"></a>
+<span class="sourceLineNo">2849</span>         *            is 1d dataset<a name="line.2849"></a>
+<span class="sourceLineNo">2850</span>         * @param out<a name="line.2850"></a>
+<span class="sourceLineNo">2851</span>         *            is 1d dataset<a name="line.2851"></a>
+<span class="sourceLineNo">2852</span>         */<a name="line.2852"></a>
+<span class="sourceLineNo">2853</span>        private static void centralDifference(final Dataset a, final Dataset out) {<a name="line.2853"></a>
+<span class="sourceLineNo">2854</span>                final int isize = a.getElementsPerItem();<a name="line.2854"></a>
+<span class="sourceLineNo">2855</span>                final int dt = a.getDType();<a name="line.2855"></a>
+<span class="sourceLineNo">2856</span><a name="line.2856"></a>
+<span class="sourceLineNo">2857</span>                final int nlen = (out.getShapeRef()[0] - 1) * isize;<a name="line.2857"></a>
+<span class="sourceLineNo">2858</span>                if (nlen &lt; 1) {<a name="line.2858"></a>
+<span class="sourceLineNo">2859</span>                        throw new IllegalArgumentException("Dataset should have a size &gt; 1 along given axis");<a name="line.2859"></a>
+<span class="sourceLineNo">2860</span>                }<a name="line.2860"></a>
+<span class="sourceLineNo">2861</span>                final IndexIterator it = a.getIterator();<a name="line.2861"></a>
+<span class="sourceLineNo">2862</span>                if (!it.hasNext())<a name="line.2862"></a>
+<span class="sourceLineNo">2863</span>                        return;<a name="line.2863"></a>
+<span class="sourceLineNo">2864</span>                int oi = it.index;<a name="line.2864"></a>
+<span class="sourceLineNo">2865</span>                if (!it.hasNext())<a name="line.2865"></a>
+<span class="sourceLineNo">2866</span>                        return;<a name="line.2866"></a>
+<span class="sourceLineNo">2867</span>                int pi = it.index;<a name="line.2867"></a>
+<span class="sourceLineNo">2868</span><a name="line.2868"></a>
+<span class="sourceLineNo">2869</span>                switch (dt) {<a name="line.2869"></a>
+<span class="sourceLineNo">2870</span>                case Dataset.INT8:<a name="line.2870"></a>
+<span class="sourceLineNo">2871</span>                        final byte[] i8data = ((ByteDataset) a).data;<a name="line.2871"></a>
+<span class="sourceLineNo">2872</span>                        final byte[] oi8data = ((ByteDataset) out).getData();<a name="line.2872"></a>
+<span class="sourceLineNo">2873</span>                        oi8data[0] = (byte) (i8data[pi] - i8data[oi]);<a name="line.2873"></a>
+<span class="sourceLineNo">2874</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2874"></a>
+<span class="sourceLineNo">2875</span>                                oi8data[i] = (byte) ((i8data[it.index] - i8data[oi]) / 2);<a name="line.2875"></a>
+<span class="sourceLineNo">2876</span>                                oi = pi;<a name="line.2876"></a>
+<span class="sourceLineNo">2877</span>                                pi = it.index;<a name="line.2877"></a>
+<span class="sourceLineNo">2878</span>                        }<a name="line.2878"></a>
+<span class="sourceLineNo">2879</span>                        oi8data[nlen] = (byte) (i8data[pi] - i8data[oi]);<a name="line.2879"></a>
+<span class="sourceLineNo">2880</span>                        break;<a name="line.2880"></a>
+<span class="sourceLineNo">2881</span>                case Dataset.INT16:<a name="line.2881"></a>
+<span class="sourceLineNo">2882</span>                        final short[] i16data = ((ShortDataset) a).data;<a name="line.2882"></a>
+<span class="sourceLineNo">2883</span>                        final short[] oi16data = ((ShortDataset) out).getData();<a name="line.2883"></a>
+<span class="sourceLineNo">2884</span>                        oi16data[0] = (short) (i16data[pi] - i16data[oi]);<a name="line.2884"></a>
+<span class="sourceLineNo">2885</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2885"></a>
+<span class="sourceLineNo">2886</span>                                oi16data[i] = (short) ((i16data[it.index] - i16data[oi]) / 2);<a name="line.2886"></a>
+<span class="sourceLineNo">2887</span>                                oi = pi;<a name="line.2887"></a>
+<span class="sourceLineNo">2888</span>                                pi = it.index;<a name="line.2888"></a>
+<span class="sourceLineNo">2889</span>                        }<a name="line.2889"></a>
+<span class="sourceLineNo">2890</span>                        oi16data[nlen] = (short) (i16data[pi] - i16data[oi]);<a name="line.2890"></a>
+<span class="sourceLineNo">2891</span>                        break;<a name="line.2891"></a>
+<span class="sourceLineNo">2892</span>                case Dataset.INT32:<a name="line.2892"></a>
+<span class="sourceLineNo">2893</span>                        final int[] i32data = ((IntegerDataset) a).data;<a name="line.2893"></a>
+<span class="sourceLineNo">2894</span>                        final int[] oi32data = ((IntegerDataset) out).getData();<a name="line.2894"></a>
+<span class="sourceLineNo">2895</span>                        oi32data[0] = i32data[pi] - i32data[oi];<a name="line.2895"></a>
+<span class="sourceLineNo">2896</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2896"></a>
+<span class="sourceLineNo">2897</span>                                oi32data[i] = (i32data[it.index] - i32data[oi]) / 2;<a name="line.2897"></a>
+<span class="sourceLineNo">2898</span>                                oi = pi;<a name="line.2898"></a>
+<span class="sourceLineNo">2899</span>                                pi = it.index;<a name="line.2899"></a>
+<span class="sourceLineNo">2900</span>                        }<a name="line.2900"></a>
+<span class="sourceLineNo">2901</span>                        oi32data[nlen] = i32data[pi] - i32data[oi];<a name="line.2901"></a>
+<span class="sourceLineNo">2902</span>                        break;<a name="line.2902"></a>
+<span class="sourceLineNo">2903</span>                case Dataset.INT64:<a name="line.2903"></a>
+<span class="sourceLineNo">2904</span>                        final long[] i64data = ((LongDataset) a).data;<a name="line.2904"></a>
+<span class="sourceLineNo">2905</span>                        final long[] oi64data = ((LongDataset) out).getData();<a name="line.2905"></a>
+<span class="sourceLineNo">2906</span>                        oi64data[0] = i64data[pi] - i64data[oi];<a name="line.2906"></a>
+<span class="sourceLineNo">2907</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2907"></a>
+<span class="sourceLineNo">2908</span>                                oi64data[i] = (i64data[it.index] - i64data[oi]) / 2;<a name="line.2908"></a>
+<span class="sourceLineNo">2909</span>                                oi = pi;<a name="line.2909"></a>
+<span class="sourceLineNo">2910</span>                                pi = it.index;<a name="line.2910"></a>
+<span class="sourceLineNo">2911</span>                        }<a name="line.2911"></a>
+<span class="sourceLineNo">2912</span>                        oi64data[nlen] = i64data[pi] - i64data[oi];<a name="line.2912"></a>
+<span class="sourceLineNo">2913</span>                        break;<a name="line.2913"></a>
+<span class="sourceLineNo">2914</span>                case Dataset.ARRAYINT8:<a name="line.2914"></a>
+<span class="sourceLineNo">2915</span>                        final byte[] ai8data = ((CompoundByteDataset) a).data;<a name="line.2915"></a>
+<span class="sourceLineNo">2916</span>                        final byte[] oai8data = ((CompoundByteDataset) out).getData();<a name="line.2916"></a>
+<span class="sourceLineNo">2917</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2917"></a>
+<span class="sourceLineNo">2918</span>                                oai8data[k] = (byte) (ai8data[pi + k] - ai8data[oi + k]);<a name="line.2918"></a>
+<span class="sourceLineNo">2919</span>                        }<a name="line.2919"></a>
+<span class="sourceLineNo">2920</span>                        for (int i = isize; it.hasNext();) {<a name="line.2920"></a>
+<span class="sourceLineNo">2921</span>                                int l = it.index;<a name="line.2921"></a>
+<span class="sourceLineNo">2922</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2922"></a>
+<span class="sourceLineNo">2923</span>                                        oai8data[i++] = (byte) ((ai8data[l++] - ai8data[oi++]) / 2);<a name="line.2923"></a>
+<span class="sourceLineNo">2924</span>                                }<a name="line.2924"></a>
+<span class="sourceLineNo">2925</span>                                oi = pi;<a name="line.2925"></a>
+<span class="sourceLineNo">2926</span>                                pi = it.index;<a name="line.2926"></a>
+<span class="sourceLineNo">2927</span>                        }<a name="line.2927"></a>
+<span class="sourceLineNo">2928</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2928"></a>
+<span class="sourceLineNo">2929</span>                                oai8data[nlen + k] = (byte) (ai8data[pi + k] - ai8data[oi + k]);<a name="line.2929"></a>
+<span class="sourceLineNo">2930</span>                        }<a name="line.2930"></a>
+<span class="sourceLineNo">2931</span>                        break;<a name="line.2931"></a>
+<span class="sourceLineNo">2932</span>                case Dataset.ARRAYINT16:<a name="line.2932"></a>
+<span class="sourceLineNo">2933</span>                        final short[] ai16data = ((CompoundShortDataset) a).data;<a name="line.2933"></a>
+<span class="sourceLineNo">2934</span>                        final short[] oai16data = ((CompoundShortDataset) out).getData();<a name="line.2934"></a>
+<span class="sourceLineNo">2935</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2935"></a>
+<span class="sourceLineNo">2936</span>                                oai16data[k] = (short) (ai16data[pi + k] - ai16data[oi + k]);<a name="line.2936"></a>
+<span class="sourceLineNo">2937</span>                        }<a name="line.2937"></a>
+<span class="sourceLineNo">2938</span>                        for (int i = isize; it.hasNext();) {<a name="line.2938"></a>
+<span class="sourceLineNo">2939</span>                                int l = it.index;<a name="line.2939"></a>
+<span class="sourceLineNo">2940</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2940"></a>
+<span class="sourceLineNo">2941</span>                                        oai16data[i++] = (short) ((ai16data[l++] - ai16data[oi++]) / 2);<a name="line.2941"></a>
+<span class="sourceLineNo">2942</span>                                }<a name="line.2942"></a>
+<span class="sourceLineNo">2943</span>                                oi = pi;<a name="line.2943"></a>
+<span class="sourceLineNo">2944</span>                                pi = it.index;<a name="line.2944"></a>
+<span class="sourceLineNo">2945</span>                        }<a name="line.2945"></a>
+<span class="sourceLineNo">2946</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2946"></a>
+<span class="sourceLineNo">2947</span>                                oai16data[nlen + k] = (short) (ai16data[pi + k] - ai16data[oi + k]);<a name="line.2947"></a>
+<span class="sourceLineNo">2948</span>                        }<a name="line.2948"></a>
+<span class="sourceLineNo">2949</span>                        break;<a name="line.2949"></a>
+<span class="sourceLineNo">2950</span>                case Dataset.ARRAYINT32:<a name="line.2950"></a>
+<span class="sourceLineNo">2951</span>                        final int[] ai32data = ((CompoundIntegerDataset) a).data;<a name="line.2951"></a>
+<span class="sourceLineNo">2952</span>                        final int[] oai32data = ((CompoundIntegerDataset) out).getData();<a name="line.2952"></a>
+<span class="sourceLineNo">2953</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2953"></a>
+<span class="sourceLineNo">2954</span>                                oai32data[k] = ai32data[pi + k] - ai32data[oi + k];<a name="line.2954"></a>
+<span class="sourceLineNo">2955</span>                        }<a name="line.2955"></a>
+<span class="sourceLineNo">2956</span>                        for (int i = isize; it.hasNext();) {<a name="line.2956"></a>
+<span class="sourceLineNo">2957</span>                                int l = it.index;<a name="line.2957"></a>
+<span class="sourceLineNo">2958</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2958"></a>
+<span class="sourceLineNo">2959</span>                                        oai32data[i++] = (ai32data[l++] - ai32data[oi++]) / 2;<a name="line.2959"></a>
+<span class="sourceLineNo">2960</span>                                }<a name="line.2960"></a>
+<span class="sourceLineNo">2961</span>                                oi = pi;<a name="line.2961"></a>
+<span class="sourceLineNo">2962</span>                                pi = it.index;<a name="line.2962"></a>
+<span class="sourceLineNo">2963</span>                        }<a name="line.2963"></a>
+<span class="sourceLineNo">2964</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2964"></a>
+<span class="sourceLineNo">2965</span>                                oai32data[nlen + k] = ai32data[pi + k] - ai32data[oi + k];<a name="line.2965"></a>
+<span class="sourceLineNo">2966</span>                        }<a name="line.2966"></a>
+<span class="sourceLineNo">2967</span>                        break;<a name="line.2967"></a>
+<span class="sourceLineNo">2968</span>                case Dataset.ARRAYINT64:<a name="line.2968"></a>
+<span class="sourceLineNo">2969</span>                        final long[] ai64data = ((CompoundLongDataset) a).data;<a name="line.2969"></a>
+<span class="sourceLineNo">2970</span>                        final long[] oai64data = ((CompoundLongDataset) out).getData();<a name="line.2970"></a>
+<span class="sourceLineNo">2971</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2971"></a>
+<span class="sourceLineNo">2972</span>                                oai64data[k] = ai64data[pi + k] - ai64data[oi + k];<a name="line.2972"></a>
+<span class="sourceLineNo">2973</span>                        }<a name="line.2973"></a>
+<span class="sourceLineNo">2974</span>                        for (int i = isize; it.hasNext();) {<a name="line.2974"></a>
+<span class="sourceLineNo">2975</span>                                int l = it.index;<a name="line.2975"></a>
+<span class="sourceLineNo">2976</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.2976"></a>
+<span class="sourceLineNo">2977</span>                                        oai64data[i++] = (ai64data[l++] - ai64data[oi++]) / 2;<a name="line.2977"></a>
+<span class="sourceLineNo">2978</span>                                }<a name="line.2978"></a>
+<span class="sourceLineNo">2979</span>                                oi = pi;<a name="line.2979"></a>
+<span class="sourceLineNo">2980</span>                                pi = it.index;<a name="line.2980"></a>
+<span class="sourceLineNo">2981</span>                        }<a name="line.2981"></a>
+<span class="sourceLineNo">2982</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.2982"></a>
+<span class="sourceLineNo">2983</span>                                oai64data[nlen + k] = ai64data[pi + k] - ai64data[oi + k];<a name="line.2983"></a>
+<span class="sourceLineNo">2984</span>                        }<a name="line.2984"></a>
+<span class="sourceLineNo">2985</span>                        break;<a name="line.2985"></a>
+<span class="sourceLineNo">2986</span>                case Dataset.FLOAT32:<a name="line.2986"></a>
+<span class="sourceLineNo">2987</span>                        final float[] f32data = ((FloatDataset) a).data;<a name="line.2987"></a>
+<span class="sourceLineNo">2988</span>                        final float[] of32data = ((FloatDataset) out).getData();<a name="line.2988"></a>
+<span class="sourceLineNo">2989</span>                        of32data[0] = f32data[pi] - f32data[oi];<a name="line.2989"></a>
+<span class="sourceLineNo">2990</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.2990"></a>
+<span class="sourceLineNo">2991</span>                                of32data[i] = (f32data[it.index] - f32data[oi]) * 0.5f;<a name="line.2991"></a>
+<span class="sourceLineNo">2992</span>                                oi = pi;<a name="line.2992"></a>
+<span class="sourceLineNo">2993</span>                                pi = it.index;<a name="line.2993"></a>
+<span class="sourceLineNo">2994</span>                        }<a name="line.2994"></a>
+<span class="sourceLineNo">2995</span>                        of32data[nlen] = f32data[pi] - f32data[oi];<a name="line.2995"></a>
+<span class="sourceLineNo">2996</span>                        break;<a name="line.2996"></a>
+<span class="sourceLineNo">2997</span>                case Dataset.FLOAT64:<a name="line.2997"></a>
+<span class="sourceLineNo">2998</span>                        final double[] f64data = ((DoubleDataset) a).data;<a name="line.2998"></a>
+<span class="sourceLineNo">2999</span>                        final double[] of64data = ((DoubleDataset) out).getData();<a name="line.2999"></a>
+<span class="sourceLineNo">3000</span>                        of64data[0] = f64data[pi] - f64data[oi];<a name="line.3000"></a>
+<span class="sourceLineNo">3001</span>                        for (int i = 1; it.hasNext(); i++) {<a name="line.3001"></a>
+<span class="sourceLineNo">3002</span>                                of64data[i] = (f64data[it.index] - f64data[oi]) * 0.5f;<a name="line.3002"></a>
+<span class="sourceLineNo">3003</span>                                oi = pi;<a name="line.3003"></a>
+<span class="sourceLineNo">3004</span>                                pi = it.index;<a name="line.3004"></a>
+<span class="sourceLineNo">3005</span>                        }<a name="line.3005"></a>
+<span class="sourceLineNo">3006</span>                        of64data[nlen] = f64data[pi] - f64data[oi];<a name="line.3006"></a>
+<span class="sourceLineNo">3007</span>                        break;<a name="line.3007"></a>
+<span class="sourceLineNo">3008</span>                case Dataset.COMPLEX64:<a name="line.3008"></a>
+<span class="sourceLineNo">3009</span>                        final float[] c64data = ((ComplexFloatDataset) a).data;<a name="line.3009"></a>
+<span class="sourceLineNo">3010</span>                        final float[] oc64data = ((ComplexFloatDataset) out).getData();<a name="line.3010"></a>
+<span class="sourceLineNo">3011</span>                        oc64data[0] = c64data[pi] - c64data[oi];<a name="line.3011"></a>
+<span class="sourceLineNo">3012</span>                        oc64data[1] = c64data[pi + 1] - c64data[oi + 1];<a name="line.3012"></a>
+<span class="sourceLineNo">3013</span>                        for (int i = 2; it.hasNext();) {<a name="line.3013"></a>
+<span class="sourceLineNo">3014</span>                                oc64data[i++] = (c64data[it.index] - c64data[oi++]) * 0.5f;<a name="line.3014"></a>
+<span class="sourceLineNo">3015</span>                                oc64data[i++] = (c64data[it.index + 1] - c64data[oi]) * 0.5f;<a name="line.3015"></a>
+<span class="sourceLineNo">3016</span>                                oi = pi;<a name="line.3016"></a>
+<span class="sourceLineNo">3017</span>                                pi = it.index;<a name="line.3017"></a>
+<span class="sourceLineNo">3018</span>                        }<a name="line.3018"></a>
+<span class="sourceLineNo">3019</span>                        oc64data[nlen] = c64data[pi] - c64data[oi];<a name="line.3019"></a>
+<span class="sourceLineNo">3020</span>                        oc64data[nlen + 1] = c64data[pi + 1] - c64data[oi + 1];<a name="line.3020"></a>
+<span class="sourceLineNo">3021</span>                        break;<a name="line.3021"></a>
+<span class="sourceLineNo">3022</span>                case Dataset.COMPLEX128:<a name="line.3022"></a>
+<span class="sourceLineNo">3023</span>                        final double[] c128data = ((ComplexDoubleDataset) a).data;<a name="line.3023"></a>
+<span class="sourceLineNo">3024</span>                        final double[] oc128data = ((ComplexDoubleDataset) out).getData();<a name="line.3024"></a>
+<span class="sourceLineNo">3025</span>                        oc128data[0] = c128data[pi] - c128data[oi];<a name="line.3025"></a>
+<span class="sourceLineNo">3026</span>                        oc128data[1] = c128data[pi + 1] - c128data[oi + 1];<a name="line.3026"></a>
+<span class="sourceLineNo">3027</span>                        for (int i = 2; it.hasNext();) {<a name="line.3027"></a>
+<span class="sourceLineNo">3028</span>                                oc128data[i++] = (c128data[it.index] - c128data[oi++]) * 0.5f;<a name="line.3028"></a>
+<span class="sourceLineNo">3029</span>                                oc128data[i++] = (c128data[it.index + 1] - c128data[oi]) * 0.5f;<a name="line.3029"></a>
+<span class="sourceLineNo">3030</span>                                oi = pi;<a name="line.3030"></a>
+<span class="sourceLineNo">3031</span>                                pi = it.index;<a name="line.3031"></a>
+<span class="sourceLineNo">3032</span>                        }<a name="line.3032"></a>
+<span class="sourceLineNo">3033</span>                        oc128data[nlen] = c128data[pi] - c128data[oi];<a name="line.3033"></a>
+<span class="sourceLineNo">3034</span>                        oc128data[nlen + 1] = c128data[pi + 1] - c128data[oi + 1];<a name="line.3034"></a>
+<span class="sourceLineNo">3035</span>                        break;<a name="line.3035"></a>
+<span class="sourceLineNo">3036</span>                case Dataset.ARRAYFLOAT32:<a name="line.3036"></a>
+<span class="sourceLineNo">3037</span>                        final float[] af32data = ((CompoundFloatDataset) a).data;<a name="line.3037"></a>
+<span class="sourceLineNo">3038</span>                        final float[] oaf32data = ((CompoundFloatDataset) out).getData();<a name="line.3038"></a>
+<span class="sourceLineNo">3039</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3039"></a>
+<span class="sourceLineNo">3040</span>                                oaf32data[k] = af32data[pi + k] - af32data[oi + k];<a name="line.3040"></a>
+<span class="sourceLineNo">3041</span>                        }<a name="line.3041"></a>
+<span class="sourceLineNo">3042</span>                        for (int i = isize; it.hasNext();) {<a name="line.3042"></a>
+<span class="sourceLineNo">3043</span>                                int l = it.index;<a name="line.3043"></a>
+<span class="sourceLineNo">3044</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.3044"></a>
+<span class="sourceLineNo">3045</span>                                        oaf32data[i++] = (af32data[l++] - af32data[oi++]) * 0.5f;<a name="line.3045"></a>
+<span class="sourceLineNo">3046</span>                                }<a name="line.3046"></a>
+<span class="sourceLineNo">3047</span>                                oi = pi;<a name="line.3047"></a>
+<span class="sourceLineNo">3048</span>                                pi = it.index;<a name="line.3048"></a>
+<span class="sourceLineNo">3049</span>                        }<a name="line.3049"></a>
+<span class="sourceLineNo">3050</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3050"></a>
+<span class="sourceLineNo">3051</span>                                oaf32data[nlen + k] = af32data[pi + k] - af32data[oi + k];<a name="line.3051"></a>
+<span class="sourceLineNo">3052</span>                        }<a name="line.3052"></a>
+<span class="sourceLineNo">3053</span>                        break;<a name="line.3053"></a>
+<span class="sourceLineNo">3054</span>                case Dataset.ARRAYFLOAT64:<a name="line.3054"></a>
+<span class="sourceLineNo">3055</span>                        final double[] af64data = ((CompoundDoubleDataset) a).data;<a name="line.3055"></a>
+<span class="sourceLineNo">3056</span>                        final double[] oaf64data = ((CompoundDoubleDataset) out).getData();<a name="line.3056"></a>
+<span class="sourceLineNo">3057</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3057"></a>
+<span class="sourceLineNo">3058</span>                                oaf64data[k] = af64data[pi + k] - af64data[oi + k];<a name="line.3058"></a>
+<span class="sourceLineNo">3059</span>                        }<a name="line.3059"></a>
+<span class="sourceLineNo">3060</span>                        for (int i = isize; it.hasNext();) {<a name="line.3060"></a>
+<span class="sourceLineNo">3061</span>                                int l = it.index;<a name="line.3061"></a>
+<span class="sourceLineNo">3062</span>                                for (int k = 0; k &lt; isize; k++) {<a name="line.3062"></a>
+<span class="sourceLineNo">3063</span>                                        oaf64data[i++] = (af64data[l++] - af64data[oi++]) * 0.5;<a name="line.3063"></a>
+<span class="sourceLineNo">3064</span>                                }<a name="line.3064"></a>
+<span class="sourceLineNo">3065</span>                                oi = pi;<a name="line.3065"></a>
+<span class="sourceLineNo">3066</span>                                pi = it.index;<a name="line.3066"></a>
+<span class="sourceLineNo">3067</span>                        }<a name="line.3067"></a>
+<span class="sourceLineNo">3068</span>                        for (int k = 0; k &lt; isize; k++) {<a name="line.3068"></a>
+<span class="sourceLineNo">3069</span>                                oaf64data[nlen + k] = af64data[pi + k] - af64data[oi + k];<a name="line.3069"></a>
+<span class="sourceLineNo">3070</span>                        }<a name="line.3070"></a>
+<span class="sourceLineNo">3071</span>                        break;<a name="line.3071"></a>
+<span class="sourceLineNo">3072</span>                default:<a name="line.3072"></a>
+<span class="sourceLineNo">3073</span>                        throw new UnsupportedOperationException("difference does not support this dataset type");<a name="line.3073"></a>
+<span class="sourceLineNo">3074</span>                }<a name="line.3074"></a>
+<span class="sourceLineNo">3075</span>        }<a name="line.3075"></a>
+<span class="sourceLineNo">3076</span><a name="line.3076"></a>
+<span class="sourceLineNo">3077</span>        /**<a name="line.3077"></a>
+<span class="sourceLineNo">3078</span>         * Calculate gradient (or partial derivatives) by central difference<a name="line.3078"></a>
+<span class="sourceLineNo">3079</span>         * <a name="line.3079"></a>
+<span class="sourceLineNo">3080</span>         * @param y<a name="line.3080"></a>
+<span class="sourceLineNo">3081</span>         * @param x<a name="line.3081"></a>
+<span class="sourceLineNo">3082</span>         *            one or more datasets for dependent variables<a name="line.3082"></a>
+<span class="sourceLineNo">3083</span>         * @return a list of datasets (one for each dimension in y)<a name="line.3083"></a>
+<span class="sourceLineNo">3084</span>         */<a name="line.3084"></a>
+<span class="sourceLineNo">3085</span>        public static List&lt;Dataset&gt; gradient(Dataset y, Dataset... x) {<a name="line.3085"></a>
+<span class="sourceLineNo">3086</span>                final int rank = y.getRank();<a name="line.3086"></a>
+<span class="sourceLineNo">3087</span><a name="line.3087"></a>
+<span class="sourceLineNo">3088</span>                if (x.length &gt; 0) {<a name="line.3088"></a>
+<span class="sourceLineNo">3089</span>                        if (x.length != rank) {<a name="line.3089"></a>
+<span class="sourceLineNo">3090</span>                                throw new IllegalArgumentException(<a name="line.3090"></a>
+<span class="sourceLineNo">3091</span>                                                "Number of dependent datasets must be equal to rank of first argument");<a name="line.3091"></a>
+<span class="sourceLineNo">3092</span>                        }<a name="line.3092"></a>
+<span class="sourceLineNo">3093</span>                        for (int a = 0; a &lt; rank; a++) {<a name="line.3093"></a>
+<span class="sourceLineNo">3094</span>                                int rx = x[a].getRank();<a name="line.3094"></a>
+<span class="sourceLineNo">3095</span>                                if (rx != rank &amp;&amp; rx != 1) {<a name="line.3095"></a>
+<span class="sourceLineNo">3096</span>                                        throw new IllegalArgumentException(<a name="line.3096"></a>
+<span class="sourceLineNo">3097</span>                                                        "Dependent datasets must be 1-D or match rank of first argument");<a name="line.3097"></a>
+<span class="sourceLineNo">3098</span>                                }<a name="line.3098"></a>
+<span class="sourceLineNo">3099</span>                                if (rx == 1) {<a name="line.3099"></a>
+<span class="sourceLineNo">3100</span>                                        if (y.getShapeRef()[a] != x[a].getShapeRef()[0]) {<a name="line.3100"></a>
+<span class="sourceLineNo">3101</span>                                                throw new IllegalArgumentException("Length of dependent dataset must match axis length");<a name="line.3101"></a>
+<span class="sourceLineNo">3102</span>                                        }<a name="line.3102"></a>
+<span class="sourceLineNo">3103</span>                                } else {<a name="line.3103"></a>
+<span class="sourceLineNo">3104</span>                                        y.checkCompatibility(x[a]);<a name="line.3104"></a>
+<span class="sourceLineNo">3105</span>                                }<a name="line.3105"></a>
+<span class="sourceLineNo">3106</span>                        }<a name="line.3106"></a>
+<span class="sourceLineNo">3107</span>                }<a name="line.3107"></a>
+<span class="sourceLineNo">3108</span><a name="line.3108"></a>
+<span class="sourceLineNo">3109</span>                List&lt;Dataset&gt; grad = new ArrayList&lt;Dataset&gt;(rank);<a name="line.3109"></a>
+<span class="sourceLineNo">3110</span><a name="line.3110"></a>
+<span class="sourceLineNo">3111</span>                for (int a = 0; a &lt; rank; a++) {<a name="line.3111"></a>
+<span class="sourceLineNo">3112</span>                        Dataset g = centralDifference(y, a);<a name="line.3112"></a>
+<span class="sourceLineNo">3113</span>                        grad.add(g);<a name="line.3113"></a>
+<span class="sourceLineNo">3114</span>                }<a name="line.3114"></a>
+<span class="sourceLineNo">3115</span><a name="line.3115"></a>
+<span class="sourceLineNo">3116</span>                if (x.length &gt; 0) {<a name="line.3116"></a>
+<span class="sourceLineNo">3117</span>                        for (int a = 0; a &lt; rank; a++) {<a name="line.3117"></a>
+<span class="sourceLineNo">3118</span>                                Dataset g = grad.get(a);<a name="line.3118"></a>
+<span class="sourceLineNo">3119</span>                                Dataset dx = x[a];<a name="line.3119"></a>
+<span class="sourceLineNo">3120</span>                                int r = dx.getRank();<a name="line.3120"></a>
+<span class="sourceLineNo">3121</span>                                if (r == rank) {<a name="line.3121"></a>
+<span class="sourceLineNo">3122</span>                                        g.idivide(centralDifference(dx, a));<a name="line.3122"></a>
+<span class="sourceLineNo">3123</span>                                } else {<a name="line.3123"></a>
+<span class="sourceLineNo">3124</span>                                        final int is = dx.getElementsPerItem();<a name="line.3124"></a>
+<span class="sourceLineNo">3125</span>                                        final Dataset bdx = DatasetFactory.zeros(is, dx.getClass(), y.getShapeRef());<a name="line.3125"></a>
+<span class="sourceLineNo">3126</span>                                        final PositionIterator pi = y.getPositionIterator(a);<a name="line.3126"></a>
+<span class="sourceLineNo">3127</span>                                        final int[] pos = pi.getPos();<a name="line.3127"></a>
+<span class="sourceLineNo">3128</span>                                        final boolean[] hit = pi.getOmit();<a name="line.3128"></a>
+<span class="sourceLineNo">3129</span>                                        dx = centralDifference(dx, 0);<a name="line.3129"></a>
+<span class="sourceLineNo">3130</span><a name="line.3130"></a>
+<span class="sourceLineNo">3131</span>                                        while (pi.hasNext()) {<a name="line.3131"></a>
+<span class="sourceLineNo">3132</span>                                                bdx.setItemsOnAxes(pos, hit, dx.getBuffer());<a name="line.3132"></a>
+<span class="sourceLineNo">3133</span>                                        }<a name="line.3133"></a>
+<span class="sourceLineNo">3134</span>                                        g.idivide(bdx);<a name="line.3134"></a>
+<span class="sourceLineNo">3135</span>                                }<a name="line.3135"></a>
+<span class="sourceLineNo">3136</span>                        }<a name="line.3136"></a>
+<span class="sourceLineNo">3137</span>                }<a name="line.3137"></a>
+<span class="sourceLineNo">3138</span>                return grad;<a name="line.3138"></a>
+<span class="sourceLineNo">3139</span>        }<a name="line.3139"></a>
+<span class="sourceLineNo">3140</span>}<a name="line.3140"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/NullIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/NullIterator.html
new file mode 100644
index 0000000..0724ced
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/NullIterator.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>public class NullIterator extends SliceIterator {<a name="line.12"></a>
+<span class="sourceLineNo">013</span>        /**<a name="line.13"></a>
+<span class="sourceLineNo">014</span>         * @param shape shape of dataset<a name="line.14"></a>
+<span class="sourceLineNo">015</span>         * @param sshape shape of slice<a name="line.15"></a>
+<span class="sourceLineNo">016</span>         */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>        public NullIterator(int[] shape, int[] sshape) {<a name="line.17"></a>
+<span class="sourceLineNo">018</span>                this.shape = shape;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>                this.sshape = sshape;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        }<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        @Override<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public boolean hasNext() {<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                return false;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        }<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        @Override<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public int[] getPos() {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                return null;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        @Override<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public void reset() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span>}<a name="line.35"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ObjectDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ObjectDataset.html
new file mode 100644
index 0000000..5adbb52
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ObjectDataset.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.text.MessageFormat;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * Extend dataset for objects<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class ObjectDataset extends ObjectDatasetBase {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        // pin UID to base class<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * Create a null dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        ObjectDataset() {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                super();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create a null-filled dataset of given shape<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        ObjectDataset(final int... shape) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                super(shape);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        }<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * Create a dataset using given data<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param data<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param shape (can be null to create 1D dataset)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        ObjectDataset(final Object[] data, int... shape) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                super(data, shape);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Copy a dataset<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param dataset<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        ObjectDataset(final ObjectDataset dataset) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                super(dataset);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Cast a dataset to this class type<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param dataset<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        ObjectDataset(final Dataset dataset) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                super(dataset);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>        @Override<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        public ObjectDataset getView(boolean deepCopyMetadata) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                ObjectDataset view = new ObjectDataset();<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                view.setData();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                return view;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>        @Override<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public ObjectDataset clone() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return new ObjectDataset(this);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        @Override<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public ObjectDataset getSlice(SliceIterator siter) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                ObjectDatasetBase base = super.getSlice(siter);<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>                ObjectDataset slice = new ObjectDataset();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                copyToView(base, slice, false, false);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                slice.setData();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                return slice;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>        /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * <a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param obj<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @return dataset with contents given by input<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         */<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        static ObjectDataset createFromObject(final Object obj) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                ObjectDatasetBase result = ObjectDatasetBase.createFromObject(obj);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                ObjectDataset ds = new ObjectDataset(result.data, result.shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (result.shape.length == 0)<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        ds.setShape(result.shape); // special case of single item <a name="line.98"></a>
+<span class="sourceLineNo">099</span>                return ds;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>        /**<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @param shape<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @return a dataset filled with ones<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        static ObjectDataset ones(final int... shape) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>        @Override<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        public boolean getElementBooleanAbs(int index) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        public double getElementDoubleAbs(int index) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>        @Override<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        public long getElementLongAbs(int index) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>        @Override<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        public double getDouble() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>        @Override<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public double getDouble(int i) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        @Override<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        public double getDouble(int i, int j) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>        @Override<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        public double getDouble(int... pos) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>        @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        public float getFloat() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>        @Override<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public float getFloat(int i) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>        @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public float getFloat(int i, int j) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        @Override<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        public float getFloat(int... pos) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>        @Override<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        public long getLong() {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>        @Override<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        public long getLong(int i) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        public long getLong(int i, int j) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>        @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        public long getLong(int... pos) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>        @Override<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        public int getInt() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>        @Override<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        public int getInt(int i) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        }<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>        @Override<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public int getInt(int i, int j) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>        @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        public int getInt(int... pos) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>        @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        public short getShort() {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        public short getShort(int i) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        public short getShort(int i, int j) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        @Override<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public short getShort(int... pos) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>        @Override<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public byte getByte() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>        @Override<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        public byte getByte(int i) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>        @Override<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        public byte getByte(int i, int j) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>        @Override<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        public byte getByte(int... pos) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>        @Override<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        public boolean getBoolean() {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public boolean getBoolean(int i) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span>        @Override<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        public boolean getBoolean(int i, int j) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
+<span class="sourceLineNo">259</span><a name="line.259"></a>
+<span class="sourceLineNo">260</span>        @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        public boolean getBoolean(int... pos) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>        @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public String getStringAbs(final int index) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return stringFormat instanceof MessageFormat ? stringFormat.format(data[index]) :<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                String.format("%s", data[index]);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public boolean containsInfs() {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return false;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public boolean containsNans() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                return false;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>        @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public ObjectDataset iadd(Object o) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>        @Override<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        public ObjectDataset isubtract(Object o) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        @Override<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        public ObjectDataset imultiply(Object o) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>        @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        public ObjectDataset idivide(Object o) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>        @Override<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        public ObjectDataset iremainder(Object o) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        }<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>        @Override<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        public ObjectDataset ifloor() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>        @Override<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        public ObjectDataset ipower(Object o) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.323"></a>
+<span class="sourceLineNo">324</span>        }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>        @Override<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        public double residual(Object o) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>}<a name="line.330"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html
new file mode 100644
index 0000000..5a1d4c0
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ObjectDatasetBase.html
@@ -0,0 +1,1040 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Extend dataset for Object values // PRIM_TYPE<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class ObjectDatasetBase extends AbstractDataset {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // pin UID to base class<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        protected Object[] data; // subclass alias // PRIM_TYPE<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        protected void setData() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                data = (Object[]) odata; // PRIM_TYPE<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected static Object[] createArray(final int size) { // PRIM_TYPE<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                Object[] array = null; // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>                try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        array = new Object[size]; // PRIM_TYPE<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                } catch (OutOfMemoryError e) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return array;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public int getDType() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return OBJECT; // DATA_TYPE<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a null dataset<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        ObjectDatasetBase() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Create a zero-filled dataset of given shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        ObjectDatasetBase(final int... shape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (shape != null) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        size = ShapeUtils.calcSize(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        this.shape = shape.clone();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                odata = data = createArray(size);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } catch (Throwable t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException(t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * Create a dataset using given data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            (can be null to create 1D dataset)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        ObjectDatasetBase(final Object[] data, int... shape) { // PRIM_TYPE<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (data == null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (shape == null || shape.length == 0) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        shape = new int[] { data.length };<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                size = ShapeUtils.calcSize(shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (size != data.length) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        Arrays.toString(shape), data.length));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                odata = this.data = data;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Copy a dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        ObjectDatasetBase(final ObjectDatasetBase dataset) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                copyToView(dataset, this, true, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                try {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (dataset.stride == null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                if (dataset.data != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        } else {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                offset = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                stride = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                base = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                odata = data = createArray(size);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                IndexIterator iter = dataset.getIterator();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                        data[i] = dataset.data[iter.index];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                } catch (Throwable t) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        throw new IllegalArgumentException(t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Copy and cast a dataset to this class type<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param dataset<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        ObjectDatasetBase(final Dataset dataset) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                copyToView(dataset, this, true, false);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                offset = 0;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                stride = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                base = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        odata = data = createArray(size);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } catch (Throwable t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        throw new IllegalArgumentException(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                IndexIterator iter = dataset.getIterator();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        data[i] = dataset.getObjectAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean equals(Object obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                if (!super.equals(obj)) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        return false;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>                ObjectDatasetBase other = (ObjectDatasetBase) obj;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//              if (size == 1) // for zero-rank datasets<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator iter = getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator oiter = other.getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        if (!data[iter.index].equals(other.data[oiter.index])) // OBJECT_UNEQUAL<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                return false;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return true;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public int hashCode() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return super.hashCode();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        public ObjectDatasetBase clone() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                return new ObjectDatasetBase(this);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>        /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * sequences or arrays are padded with zeros.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         *<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param obj<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @return dataset with contents given by input<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        static ObjectDatasetBase createFromObject(final Object obj) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                ObjectDatasetBase result = new ObjectDatasetBase();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                if (obj != null) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        try {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                result.odata = result.data = createArray(result.size);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        } catch (Throwable t) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                throw new IllegalArgumentException(t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        int[] pos = new int[result.shape.length];<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        result.fillData(obj, 0, pos);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                return result;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>        /**<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param shape<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a dataset filled with ones<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static ObjectDatasetBase ones(final int... shape) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return new ObjectDatasetBase(shape).fill(1);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>        @Override<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public ObjectDatasetBase fill(final Object obj) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                setDirty();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                IndexIterator iter = getIterator();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                while (iter.hasNext()) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        data[iter.index] = dv;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return this;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * This is a typed version of {@link #getBuffer()}<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * @return data buffer as linear array<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public Object[] getData() { // PRIM_TYPE<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                return data;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>        @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        protected int getBufferLength() {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                if (data == null)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        return 0;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return data.length;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>        @Override<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        public ObjectDatasetBase getView(boolean deepCopyMetadata) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                ObjectDatasetBase view = new ObjectDatasetBase();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                view.setData();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return view;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        /**<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param index<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         *            absolute index<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @return value<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        public Object getAbs(final int index) { // PRIM_TYPE<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return data[index];<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return false;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public double getElementDoubleAbs(final int index) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return 0;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public long getElementLongAbs(final int index) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public Object getObjectAbs(final int index) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                return data[index];<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>        @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public String getStringAbs(final int index) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                return stringFormat == null ? String.format("%s", data[index]) : // FORMAT_STRING<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        stringFormat.format(data[index]);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        /**<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         *<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param index<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         *            absolute index<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         * @param val<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *            new value<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public void setAbs(final int index, final Object val) { // PRIM_TYPE<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                setDirty();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                data[index] = val;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>        @Override<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                setDirty();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                Object[] dsrc = (Object[]) src; // PRIM_TYPE<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                data[dindex] = dsrc[sindex];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>                setAbs(index, obj); // FROM_OBJECT<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @return item in first position<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @since 2.0<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         */<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public Object get() { // PRIM_TYPE<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                return data[getFirst1DIndex()];<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>        /**<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @param i<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @return item in given position<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         */<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        public Object get(final int i) { // PRIM_TYPE<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                return data[get1DIndex(i)];<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>        /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @param i<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param j<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         * @return item in given position<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public Object get(final int i, final int j) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return data[get1DIndex(i, j)];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>        /**<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @param pos<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in given position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         */<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        public Object get(final int... pos) { // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                return data[get1DIndex(pos)];<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>        @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public Object getObject() {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return get(); // CLASS_TYPE<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>        @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public Object getObject(final int i) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return get(i); // CLASS_TYPE<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>        @Override<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        public Object getObject(final int i, final int j) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return get(i, j); // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>        @Override<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public Object getObject(final int... pos) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return get(pos); // CLASS_TYPE<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>        @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public String getString() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return getStringAbs(getFirst1DIndex());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        @Override<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        public String getString(final int i) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return getStringAbs(get1DIndex(i));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public String getString(final int i, final int j) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return getStringAbs(get1DIndex(i, j));<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>        @Override<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        public String getString(final int... pos) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return getStringAbs(get1DIndex(pos));<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>        @Override<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public double getDouble() {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return 0;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        @Override<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        public double getDouble(final int i) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                return 0;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        }<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>        @Override<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        public double getDouble(final int i, final int j) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return 0;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>        @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        public double getDouble(final int... pos) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public float getFloat() {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                return 0;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>        @Override<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        public float getFloat(final int i) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return 0;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>        @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        public float getFloat(final int i, final int j) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                return 0;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>        @Override<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public float getFloat(final int... pos) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                return 0;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>        @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        public long getLong() {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                return 0;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>        @Override<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        public long getLong(final int i) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                return 0;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>        @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        public long getLong(final int i, final int j) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                return 0;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>        @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        public long getLong(final int... pos) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                return 0;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        }<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>        @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        public int getInt() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                return 0;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>        @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        public int getInt(final int i) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                return 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>        @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        public int getInt(final int i, final int j) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                return 0;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>        @Override<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public int getInt(final int... pos) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                return 0;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>        @Override<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        public short getShort() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                return 0;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        }<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>        @Override<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public short getShort(final int i) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                return 0;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        }<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>        @Override<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public short getShort(final int i, final int j) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                return 0;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>        @Override<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        public short getShort(final int... pos) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                return 0;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>        @Override<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        public byte getByte() {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                return 0;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>        @Override<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        public byte getByte(final int i) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                return 0;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>        @Override<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        public byte getByte(final int i, final int j) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return 0;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        @Override<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        public byte getByte(final int... pos) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return 0;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span>        @Override<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        public boolean getBoolean() {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return false;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>        @Override<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        public boolean getBoolean(final int i) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return false;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        }<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span>        @Override<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        public boolean getBoolean(final int i, final int j) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return false;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>        @Override<a name="line.535"></a>
+<span class="sourceLineNo">536</span>        public boolean getBoolean(final int... pos) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return false;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>        /**<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         *<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         * @param value<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * @since 2.0<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         */<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public void setItem(final Object value) { // PRIM_TYPE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                setAbs(getFirst1DIndex(), value);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        }<a name="line.548"></a>
+<span class="sourceLineNo">549</span><a name="line.549"></a>
+<span class="sourceLineNo">550</span>        /**<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         *<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @param value<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param i<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public void setItem(final Object value, final int i) { // PRIM_TYPE<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                setAbs(get1DIndex(i), value);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>        /**<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         *<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param value<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         * @param i<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         * @param j<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         */<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public void setItem(final Object value, final int i, final int j) { // PRIM_TYPE<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                setAbs(get1DIndex(i, j), value);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        }<a name="line.569"></a>
+<span class="sourceLineNo">570</span><a name="line.570"></a>
+<span class="sourceLineNo">571</span>        /**<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * Sets the value at a particular point to the passed value<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         *<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param value<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @param pos<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public void setItem(final Object value, final int... pos) { // PRIM_TYPE<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                setAbs(get1DIndex(pos), value);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>        @Override<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void set(final Object obj) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setItem(obj); // FROM_OBJECT<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public void set(final Object obj, final int i) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                setItem(obj, i); // FROM_OBJECT<a name="line.588"></a>
+<span class="sourceLineNo">589</span>        }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>        @Override<a name="line.591"></a>
+<span class="sourceLineNo">592</span>        public void set(final Object obj, final int i, final int j) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                setItem(obj, i, j); // FROM_OBJECT<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public void set(final Object obj, int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        pos = new int[shape.length];<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setItem(obj, pos); // FROM_OBJECT<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        }<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>        @Override<a name="line.605"></a>
+<span class="sourceLineNo">606</span>        public void resize(int... newShape) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setDirty();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                final IndexIterator iter = getIterator();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                final Object[] ndata; // PRIM_TYPE<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                try {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        ndata = createArray(nsize);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                } catch (Throwable t) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        throw new IllegalArgumentException(t);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        ndata[i] = data[iter.index];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>                odata = data = ndata;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                size = nsize;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                shape = newShape;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                stride = null;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                offset = 0;<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                base = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        @Override<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        public ObjectDatasetBase sort(Integer axis) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                setDirty();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                if (axis == null) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        if (stride == null) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                Arrays.sort(data);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        } else {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                ObjectDatasetBase ads = clone().sort(null);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                setSlicedView(getView(false), ads);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } else {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        axis = checkAxis(axis);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        <a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        ObjectDatasetBase ads = new ObjectDatasetBase(shape[axis]);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        int[] pos = pi.getPos();<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        boolean[] hit = pi.getOmit();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        while (pi.hasNext()) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                Arrays.sort(ads.data);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return this;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public ObjectDatasetBase getUniqueItems() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                Set&lt;Object&gt; set = new TreeSet&lt;Object&gt;(); // CLASS_TYPE<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                IndexIterator it = getIterator();<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                while (it.hasNext()) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        set.add(data[it.index]);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span><a name="line.663"></a>
+<span class="sourceLineNo">664</span>                ObjectDataset u = new ObjectDataset(set.size()); // CLASS_TYPE<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int i = 0;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                Object[] udata = u.getData(); // PRIM_TYPE<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                for (Object v : set) { // CLASS_TYPE<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        udata[i++] = v;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                return u;<a name="line.670"></a>
+<span class="sourceLineNo">671</span>        }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>        @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        public ObjectDatasetBase getSlice(final SliceIterator siter) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                ObjectDatasetBase result = new ObjectDatasetBase(siter.getShape());<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                Object[] rdata = result.data; // PRIM_TYPE<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        rdata[i] = data[siter.index];<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                return result;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        }<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>        @Override<a name="line.685"></a>
+<span class="sourceLineNo">686</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                IndexIterator riter = result.getIterator();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                result.setDirty();<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                Object[] rdata = ((ObjectDatasetBase) result).data; // PRIM_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        rdata[riter.index] = data[iter.index];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>        @Override<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        public ObjectDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                setDirty();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                if (obj instanceof Dataset) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        final Dataset ds = (Dataset) obj;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        if (length != ds.getSize()) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                throw new IllegalArgumentException(<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                data[biter.index] = ds.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                } else {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        while (biter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                data[biter.index] = dv;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return this;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        }<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>        @Override<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        public ObjectDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                setDirty();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                if (obj instanceof Dataset) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        final Dataset ds = (Dataset) obj;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        if (index.getSize() != ds.getSize()) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                throw new IllegalArgumentException(<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        }<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                data[iter.index] = ds.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        while (iter.hasNext()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                data[iter.index] = dv;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return this;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public ObjectDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                setDirty();<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                final int[] pos = iter.getPos();<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>                if (obj instanceof Dataset) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        final Dataset ds = (Dataset) obj;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                throw new IllegalArgumentException(<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        }<a name="line.763"></a>
+<span class="sourceLineNo">764</span><a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.765"></a>
+<span class="sourceLineNo">766</span><a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                setItem(ds.getObjectAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        }<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                } else {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final Object dv = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        while (iter.hasNext()) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                setItem(dv, pos);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        }<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                return this;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>        @Override<a name="line.780"></a>
+<span class="sourceLineNo">781</span>        ObjectDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                setDirty();<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>                while (it.hasNext()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        data[it.aIndex] = d.getObjectAbs(it.bIndex);<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                return this;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>        @Override<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        public ObjectDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                setDirty();<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>                if (obj instanceof IDataset) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        final IDataset ds = (IDataset) obj;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final int[] oshape = ds.getShape();<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                throw new IllegalArgumentException(String.format(<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                                Arrays.toString(siter.getShape())));<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        }<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        if (ds instanceof Dataset) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                final Dataset ads = (Dataset) ds;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        data[siter.index] = ads.getObjectAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        } else {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                final int[] pos = oiter.getPos();<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                        data[siter.index] = ds.getObject(pos); // PRIM_TYPE<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                } else {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        try {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                Object v = obj; // PRIM_TYPE // FROM_OBJECT<a name="line.820"></a>
+<span class="sourceLineNo">821</span><a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                while (siter.hasNext())<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        data[siter.index] = v;<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        } catch (IllegalArgumentException e) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return this;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>        @Override<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                Object[] ddata = (Object[]) dest.getBuffer(); // PRIM_TYPE<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.836"></a>
+<span class="sourceLineNo">837</span><a name="line.837"></a>
+<span class="sourceLineNo">838</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span>                dest.setDirty();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        ddata[diter.index] = data[siter.index];<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                }<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        }<a name="line.848"></a>
+<span class="sourceLineNo">849</span><a name="line.849"></a>
+<span class="sourceLineNo">850</span>        @Override<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                setDirty();<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                Object[] sdata = (Object[]) src; // PRIM_TYPE<a name="line.853"></a>
+<span class="sourceLineNo">854</span><a name="line.854"></a>
+<span class="sourceLineNo">855</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                }<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        data[siter.index] = sdata[i];<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                }<a name="line.863"></a>
+<span class="sourceLineNo">864</span>        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>        private List&lt;int[]&gt; findPositions(final Object value) { // PRIM_TYPE<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                IndexIterator iter = getIterator(true);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                int[] pos = iter.getPos();<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>                {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        while (iter.hasNext()) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                if (data[iter.index] == value) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        posns.add(pos.clone());<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        }<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                }<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                return posns;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        }<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>        @Override<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                if (max == null) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        md.setMaximumPositions(max);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                }<a name="line.892"></a>
+<span class="sourceLineNo">893</span><a name="line.893"></a>
+<span class="sourceLineNo">894</span>                return max.get(0); // first maximum<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        }<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>        @Override<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (min == null) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        md.setMinimumPositions(min);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return min.get(0); // first minimum<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        @Override<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        public boolean containsNans() {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                return false;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>        @Override<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public boolean containsInfs() {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                return false;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>        @Override<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        public boolean containsInvalidNumbers() {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                return false;<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>        @Override<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public ObjectDatasetBase iadd(final Object b) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                return this;<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span><a name="line.932"></a>
+<span class="sourceLineNo">933</span>        @Override<a name="line.933"></a>
+<span class="sourceLineNo">934</span>        public ObjectDatasetBase isubtract(final Object b) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                return this;<a name="line.935"></a>
+<span class="sourceLineNo">936</span>        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>        @Override<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        public ObjectDatasetBase imultiply(final Object b) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return this;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>        @Override<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        public ObjectDatasetBase idivide(final Object b) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                return this;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public ObjectDatasetBase ifloor() {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                return this;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>        @Override<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        public ObjectDatasetBase iremainder(final Object b) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                return this;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>        @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        public ObjectDatasetBase ipower(final Object b) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                return this;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        }<a name="line.961"></a>
+<span class="sourceLineNo">962</span><a name="line.962"></a>
+<span class="sourceLineNo">963</span>        @Override<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                double sum = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return sum;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>}<a name="line.968"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Addition.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Addition.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Addition.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Division.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Division.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Division.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.DivisionTowardsFloor.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.DivisionWithZero.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Exponentiation.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Maximum.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Maximum.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Maximum.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Minimum.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Minimum.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Minimum.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Multiplication.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Multiplication.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Multiplication.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Negation.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Negation.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Negation.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Remainder.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Remainder.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Remainder.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Subtraction.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Subtraction.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.Subtraction.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseBase.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseBase.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseBase.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfEqualTo.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThan.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfGreaterThanOrEqualTo.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThan.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.UseIfLessThanOrEqualTo.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.html
new file mode 100644
index 0000000..516cd64
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Operations.html
@@ -0,0 +1,1965 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.eclipse.january.dataset;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.apache.commons.math3.complex.Complex;<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>/**<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public class Operations {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * This function returns the name of the dataset, bracketed if it already<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * includes some mathematical symbol<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * <a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return the bracketed if necessary method name<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public static StringBuilder bracketIfNecessary(final String a) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                final String name = a.trim();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                StringBuilder newName = new StringBuilder(name);<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                if (name.contains("+") || name.contains("-") || name.contains("*") || name.contains("/") || name.contains("%")<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                                || name.contains("^") || name.contains("'")) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        newName.insert(0, '(');<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        newName.append(')');<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return newName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * Create a string for a binary operator and its operands<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * <a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param operator<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @param a<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         *            1st operand name<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * @param b<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         *            2nd operand name<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return name of operation<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static String createBinaryOperationName(final String operator, final String a, final String b) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                StringBuilder newName = bracketIfNecessary(a).append(operator).append(bracketIfNecessary(b));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return newName.toString();<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Create a string for a function and its arguments<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * <a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @param function<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param arguments<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return name of function<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static String createFunctionName(final String function, String... arguments) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                StringBuilder name = new StringBuilder(function);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                name.append('(');<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                int length = arguments.length - 1;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                for (int i = 0; i &lt; length; i++) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        name.append(arguments[i]);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        name.append(", ");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                name.append(arguments[length]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                name.append(')');<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                return name.toString();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Negation with boolean not<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        public static class Negation implements UnaryOperation {<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                @Override<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public boolean booleanOperate(long a) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return a == 0;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                @Override<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                public long longOperate(long a) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        return -a;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                public double doubleOperate(double a) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        return -a;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>                @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        out[0] = -ra;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        out[1] = -ia;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                public String toString(String a) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        return createFunctionName(toString(), a);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>                @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                public String toString() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        return "-";<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        /**<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * Addition with boolean or<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        public static class Addition implements BinaryOperation {<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>                @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                public boolean booleanOperate(long a, long b) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        return a != 0 || b != 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                public long longOperate(long a, long b) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        return a + b;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                @Override<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                public double doubleOperate(double a, double b) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return a + b;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>                @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        out[0] = ra + rb;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        out[1] = ia + ib;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>                @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                public String toString(String a, String b) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                public String toString() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        return "+";<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>        /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         * Subtraction with boolean or of negated second operand<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public static class Subtraction implements BinaryOperation {<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                @Override<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                public boolean booleanOperate(long a, long b) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return a != 0 || b == 0;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>                @Override<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                public long longOperate(long a, long b) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        return a - b;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>                @Override<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                public double doubleOperate(double a, double b) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return a - b;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                @Override<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        out[0] = ra - rb;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        out[1] = ia - ib;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                public String toString(String a, String b) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>                @Override<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                public String toString() {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        return "-";<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * Multiplication with boolean and<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        public static class Multiplication implements BinaryOperation {<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>                @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                public boolean booleanOperate(long a, long b) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        return a != 0 &amp;&amp; b != 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>                @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                public long longOperate(long a, long b) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                        return a * b;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                public double doubleOperate(double a, double b) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return a * b;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>                @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        out[0] = ra * rb - ia * ib;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        out[1] = ra * ib + ia * rb;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>                @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                public String toString(String a, String b) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                public String toString() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        return "*";<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Division with boolean and of negated second operand<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         */<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        public static class Division implements BinaryOperation {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>                @Override<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                public boolean booleanOperate(long a, long b) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        return a != 0 &amp;&amp; b == 0;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                @Override<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                public long longOperate(long a, long b) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        return b == 0 ? 0 : a / b;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                }<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>                @Override<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                public double doubleOperate(double a, double b) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        return a / b;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        double q;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        double den;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        if (ib == 0) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                out[0] = ra / rb;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                out[1] = ia / rb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                        } else if (rb == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                out[0] = ia / ib;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                                out[1] = -ra / ib;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                q = rb / ib;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                                den = rb * q + ib;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                                out[0] = (ra * q + ia) / den;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                                out[1] = (ia * q - rb) / den;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        } else {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                                q = ib / rb;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                den = ib * q + rb;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                out[0] = (ia * q + ra) / den;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                out[1] = (ia - ra * q) / den;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>                @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                public String toString(String a, String b) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>                @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                public String toString() {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return "/";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>         * Division with boolean and of negated second operand and returns zero if<a name="line.278"></a>
+<span class="sourceLineNo">279</span>         * denominator is zero<a name="line.279"></a>
+<span class="sourceLineNo">280</span>         */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        public static class DivisionWithZero extends Division {<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>                @Override<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                public double doubleOperate(double a, double b) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        return b == 0 ? 0 : a / b;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>                @Override<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        double q;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        double den;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (ib == 0) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (rb == 0) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        out[0] = 0;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                        out[1] = 0;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                } else {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        out[0] = ra / rb;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                        out[1] = ia / rb;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        } else if (rb == 0) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                out[0] = ia / ib;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                out[1] = -ra / ib;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        } else if (Math.abs(rb) &lt; Math.abs(ib)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                q = rb / ib;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                den = rb * q + ib;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                                out[0] = (ra * q + ia) / den;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                out[1] = (ia * q - rb) / den;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        } else {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                q = ib / rb;<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                                den = ib * q + rb;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                out[0] = (ia * q + ra) / den;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                out[1] = (ia - ra * q) / den;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         * Division with boolean and of negated second operand and rounds down to<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         * negative infinity<a name="line.319"></a>
+<span class="sourceLineNo">320</span>         */<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        public static class DivisionTowardsFloor extends Division {<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>                @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                public long longOperate(long a, long b) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                        if (b == 0)<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                return 0;<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        long ox = a / b;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        if (a != ox * b &amp;&amp; ((a &lt; 0) ^ (b &lt; 0))) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                ox--;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        return ox;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * Remainder<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        public static class Remainder implements BinaryOperation {<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>                @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                public boolean booleanOperate(long a, long b) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        throw new IllegalArgumentException("remainder does not support booleans");<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                @Override<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                public long longOperate(long a, long b) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        return b == 0 ? 0 : a % b;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>                @Override<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                public double doubleOperate(double a, double b) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        return a % b;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>                @Override<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                        throw new IllegalArgumentException("remainder does not support complex numbers");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>                @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                public String toString(String a, String b) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                }<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                @Override<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                public String toString() {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                        return "%";<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * Exponentiation with boolean and<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         */<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public static class Exponentiation extends BinaryOperation.Stub {<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>                @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                public double doubleOperate(double a, double b) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        return Math.pow(a, b);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>                @Override<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                        Complex c = new Complex(ra, ia);<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        c = ib == 0 ? c.pow(rb) : c.pow(new Complex(rb, ib));<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        out[0] = c.getReal();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        out[1] = c.getImaginary();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>                @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                public String toString(String a, String b) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>                @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                public String toString() {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        return "**";<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>        /**<a name="line.402"></a>
+<span class="sourceLineNo">403</span>         * Select maximum of a and b<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public static class Maximum implements BinaryOperation {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                public boolean booleanOperate(long a, long b) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                        return a &gt; b ? a != 0 : b != 0;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>                @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                public long longOperate(long a, long b) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                        return a &gt; b ? a : b;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>                }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>                @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                public double doubleOperate(double a, double b) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                        return a &gt; b ? a : b;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>                @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                        throw new IllegalArgumentException("select greater than does not support complex numbers");<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>                @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                public String toString(String a, String b) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        return createFunctionName(toString(), a, b);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>                @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                public String toString() {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                        return "max";<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>        /**<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         * Select minimum of a and b<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         */<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        public static class Minimum implements BinaryOperation {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                public boolean booleanOperate(long a, long b) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                        return a &lt; b ? a != 0 : b != 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>                @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                public long longOperate(long a, long b) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                        return a &lt; b ? a : b;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>                @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                public double doubleOperate(double a, double b) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                        return a &lt; b ? a : b;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>                }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>                @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        throw new IllegalArgumentException("select less than does not support complex numbers");<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>                @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                public String toString(String a, String b) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                        return createFunctionName(toString(), a, b);<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                public String toString() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        return "min";<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                }<a name="line.469"></a>
+<span class="sourceLineNo">470</span>        }<a name="line.470"></a>
+<span class="sourceLineNo">471</span><a name="line.471"></a>
+<span class="sourceLineNo">472</span>        /**<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * Use given value if a &gt; b else use a<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         */<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        public static class UseBase implements BinaryOperation {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                protected boolean br;<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                protected long lr;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                protected double dr;<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>                /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>                 * @param br<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                 *            given value as boolean<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                 * @param lr<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                 *            given value as long<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                 * @param dr<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                 *            given value as double<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                 */<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                UseBase(boolean br, long lr, double dr) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                        this.br = br;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        this.lr = lr;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                        this.dr = dr;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>                /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                 * @param r<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                 *            given value as Number<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                 */<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                UseBase(Number r) {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        br = r.intValue() != 0;<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        lr = r.longValue();<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        dr = r.doubleValue();<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>                @Override<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                public boolean booleanOperate(long a, long b) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        return false;<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>                @Override<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                public long longOperate(long a, long b) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                        return 0;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                @Override<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                public double doubleOperate(double a, double b) {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        return 0;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span>                @Override<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                @Override<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                public String toString(String a, String b) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return createBinaryOperationName(toString(), a, b);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>        /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>         * Use given value if a &gt; b else use a<a name="line.530"></a>
+<span class="sourceLineNo">531</span>         */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public static class UseIfGreaterThan extends UseBase {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                /**<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                 * @param br<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                 *            given value as boolean<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                 * @param lr<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                 *            given value as long<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                 * @param dr<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                 *            given value as double<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                 */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                public UseIfGreaterThan(boolean br, long lr, double dr) {<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        super(br, lr, dr);<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                }<a name="line.543"></a>
+<span class="sourceLineNo">544</span><a name="line.544"></a>
+<span class="sourceLineNo">545</span>                /**<a name="line.545"></a>
+<span class="sourceLineNo">546</span>                 * @param r<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                 *            given value as Number<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                 */<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                public UseIfGreaterThan(Number r) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                        super(r);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                }<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span>                @Override<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                public boolean booleanOperate(long a, long b) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                        return a &gt; b ? br : a != 0;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>                @Override<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                public long longOperate(long a, long b) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                        return a &gt; b ? lr : a;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                }<a name="line.561"></a>
+<span class="sourceLineNo">562</span><a name="line.562"></a>
+<span class="sourceLineNo">563</span>                @Override<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                public double doubleOperate(double a, double b) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        return a &gt; b ? dr : a;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                        throw new IllegalArgumentException("replace greater than does not support complex numbers");<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                }<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                @Override<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                public String toString() {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        return "&gt;";<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        }<a name="line.577"></a>
+<span class="sourceLineNo">578</span><a name="line.578"></a>
+<span class="sourceLineNo">579</span>        /**<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * Use given value if a &gt;= b else use a<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static class UseIfGreaterThanOrEqualTo extends UseBase {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                 * @param br<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                 *            given value as boolean<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                 * @param lr<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                 *            given value as long<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                 * @param dr<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                 *            given value as double<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                 */<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                public UseIfGreaterThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        super(br, lr, dr);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                }<a name="line.593"></a>
+<span class="sourceLineNo">594</span><a name="line.594"></a>
+<span class="sourceLineNo">595</span>                /**<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                 * @param r<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                 *            given value as Number<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                 */<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                public UseIfGreaterThanOrEqualTo(Number r) {<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        super(r);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span><a name="line.602"></a>
+<span class="sourceLineNo">603</span>                @Override<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                public boolean booleanOperate(long a, long b) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        return a &gt;= b ? br : a != 0;<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                }<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                @Override<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                public long longOperate(long a, long b) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        return a &gt;= b ? lr : a;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span><a name="line.612"></a>
+<span class="sourceLineNo">613</span>                @Override<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                public double doubleOperate(double a, double b) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        return a &gt;= b ? dr : a;<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span><a name="line.617"></a>
+<span class="sourceLineNo">618</span>                @Override<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                        throw new IllegalArgumentException("replace greater than or equal to does not support complex numbers");<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                @Override<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                public String toString() {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        return "&gt;";<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         * Use given value if a &lt; b else use a<a name="line.630"></a>
+<span class="sourceLineNo">631</span>         */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public static class UseIfLessThan extends UseBase {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                /**<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                 * @param br<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                 *            given value as boolean<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                 * @param lr<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                 *            given value as long<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                 * @param dr<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                 *            given value as double<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                 */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                public UseIfLessThan(boolean br, long lr, double dr) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        super(br, lr, dr);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>                /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                 * @param r<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                 *            given value as Number<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                 */<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                public UseIfLessThan(Number r) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        super(r);<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>                @Override<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                public boolean booleanOperate(long a, long b) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                        return a &lt; b ? br : a != 0;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>                }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>                @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                public long longOperate(long a, long b) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                        return a &lt; b ? lr : a;<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>                @Override<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                public double doubleOperate(double a, double b) {<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                        return a &lt; b ? dr : a;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>                @Override<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        throw new IllegalArgumentException("replace less than does not support complex numbers");<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>                @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                public String toString() {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        return "&lt;";<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>        }<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>        /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>         * Use given value if a &lt;= b else use a<a name="line.680"></a>
+<span class="sourceLineNo">681</span>         */<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        public static class UseIfLessThanOrEqualTo extends UseBase {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                /**<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                 * @param br<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                 *            given value as boolean<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                 * @param lr<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                 *            given value as long<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                 * @param dr<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                 *            given value as double<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                 */<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                public UseIfLessThanOrEqualTo(boolean br, long lr, double dr) {<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                        super(br, lr, dr);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                }<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                /**<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                 * @param r<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                 *            given value as Number<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                 */<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                public UseIfLessThanOrEqualTo(Number r) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                        super(r);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                }<a name="line.701"></a>
+<span class="sourceLineNo">702</span><a name="line.702"></a>
+<span class="sourceLineNo">703</span>                @Override<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                public boolean booleanOperate(long a, long b) {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        return a &lt;= b ? br : a != 0;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                @Override<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                public long longOperate(long a, long b) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                        return a &lt;= b ? lr : a;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>                @Override<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                public double doubleOperate(double a, double b) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        return a &lt;= b ? dr : a;<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                }<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                @Override<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        throw new IllegalArgumentException("replace less than or equal to does not support complex numbers");<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>                @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                public String toString() {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                        return "&lt;=";<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                }<a name="line.726"></a>
+<span class="sourceLineNo">727</span>        }<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>        /**<a name="line.729"></a>
+<span class="sourceLineNo">730</span>         * Use given value if a == b else use a<a name="line.730"></a>
+<span class="sourceLineNo">731</span>         */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>        public static class UseIfEqualTo extends UseBase {<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                private double di;<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                /**<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                 * @param br<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                 *            given value as boolean<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                 * @param lr<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                 *            given value as long<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                 * @param dr<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                 *            given value as double<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                 * @param di<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                 *            given value for imaginary part as double<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                 */<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                public UseIfEqualTo(boolean br, long lr, double dr, double di) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        super(br, lr, dr);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        this.di = di;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>                /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>                 * @param r<a name="line.751"></a>
+<span class="sourceLineNo">752</span>                 *            given value as Number<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                 */<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                public UseIfEqualTo(Number r) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        super(r);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        di = 0;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                }<a name="line.757"></a>
+<span class="sourceLineNo">758</span><a name="line.758"></a>
+<span class="sourceLineNo">759</span>                /**<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                 * @param z<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                 *            given value as Complex<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                 */<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                public UseIfEqualTo(Complex z) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        super(z.getReal());<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        di = z.getImaginary();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>                @Override<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                public boolean booleanOperate(long a, long b) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                        return a == b ? br : a != 0;<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                @Override<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                public long longOperate(long a, long b) {<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        return a == b ? lr : a;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>                @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>                public double doubleOperate(double a, double b) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                        return a == b ? dr : a;<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>                @Override<a name="line.783"></a>
+<span class="sourceLineNo">784</span>                public void complexOperate(double[] out, double ra, double ia, double rb, double ib) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        if (ra == rb &amp;&amp; ia == ib) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                                out[0] = dr;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                out[1] = di;<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                        } else {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                                out[0] = ra;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>                                out[1] = ia;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        }<a name="line.791"></a>
+<span class="sourceLineNo">792</span>                }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>                @Override<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                public String toString() {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        return "==";<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                }<a name="line.797"></a>
+<span class="sourceLineNo">798</span>        }<a name="line.798"></a>
+<span class="sourceLineNo">799</span><a name="line.799"></a>
+<span class="sourceLineNo">800</span>        private static long toLong(double d) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                if (Double.isInfinite(d) || Double.isNaN(d))<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                        return 0;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return (long) d;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        /**<a name="line.806"></a>
+<span class="sourceLineNo">807</span>         * Operate on a dataset<a name="line.807"></a>
+<span class="sourceLineNo">808</span>         * <a name="line.808"></a>
+<span class="sourceLineNo">809</span>         * @param op<a name="line.809"></a>
+<span class="sourceLineNo">810</span>         *            unary operator<a name="line.810"></a>
+<span class="sourceLineNo">811</span>         * @param a<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         *            dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param o<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         *            output can be null - in which case, a new dataset is created<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @return op(a), operation on a<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         */<a name="line.816"></a>
+<span class="sourceLineNo">817</span>        public static Dataset operate(final UnaryOperation op, final Object a, final Dataset o) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                final SingleInputBroadcastIterator it = new SingleInputBroadcastIterator(da, o, true, true, false);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                final Dataset result = it.getOutput();<a name="line.820"></a>
+<span class="sourceLineNo">821</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                final int is = result.getElementsPerItem();<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                final int dt = result.getDType();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                final int as = da.getElementsPerItem();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                final double[] z;<a name="line.825"></a>
+<span class="sourceLineNo">826</span><a name="line.826"></a>
+<span class="sourceLineNo">827</span>                switch (dt) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                case Dataset.BOOL:<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (!da.isComplex()) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                while (it.hasNext()) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                                }<a name="line.834"></a>
+<span class="sourceLineNo">835</span>                        } else {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                z = new double[2];<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                                while (it.hasNext()) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                        bdata[it.oIndex] = z[0] != 0;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>                                }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        }<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                        break;<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                case Dataset.INT8:<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                        final byte[] i8data = ((ByteDataset) result).getData();<a name="line.844"></a>
+<span class="sourceLineNo">845</span><a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        if (!da.isComplex()) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                                while (it.hasNext()) {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                }<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } else {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                z = new double[2];<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                                while (it.hasNext()) {<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                                        i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                                }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                        break;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                case Dataset.INT16:<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        final short[] i16data = ((ShortDataset) result).getData();<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                        if (!da.isComplex()) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                                while (it.hasNext()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                                }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>                        } else {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>                                z = new double[2];<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                while (it.hasNext()) {<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                        i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                }<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                        }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        break;<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                case Dataset.INT32:<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                        final int[] i32data = ((IntegerDataset) result).getData();<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        if (!da.isComplex()) {<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                while (it.hasNext()) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                }<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                        } else {<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                                z = new double[2];<a name="line.881"></a>
+<span class="sourceLineNo">882</span>                                while (it.hasNext()) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                                        i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>                        }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                        break;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                case Dataset.INT64:<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        final long[] i64data = ((LongDataset) result).getData();<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        if (!da.isComplex()) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                                while (it.hasNext()) {<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                                }<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        } else {<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                                z = new double[2];<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                while (it.hasNext()) {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                        i64data[it.oIndex] = toLong(z[0]);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                        }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        break;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                case Dataset.ARRAYINT8:<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        final byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>                        if (!da.isComplex()) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                                if (is == 1) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        }<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                                } else if (as == 1) { // broadcast to other elements of output<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                                        while (it.hasNext()) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                                                byte ox = (byte) op.longOperate(it.aLong);<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                                }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                        }<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                } else { // use lowest common elements<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                        int ms = Math.min(is, as);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                        while (it.hasNext()) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong);<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                                        ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                                }<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        }<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        } else {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                                z = new double[2];<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                                while (it.hasNext()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                                        byte ox = (byte) toLong(z[0]);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                                                ai8data[it.oIndex + j] = ox;<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                                        }<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                }<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        break;<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                case Dataset.ARRAYINT16:<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                        final short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>                        if (!da.isComplex()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                if (is == 1) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                        while (it.hasNext()) {<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        }<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                } else if (as == 1) {<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                        while (it.hasNext()) {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                                short ox = (short) op.longOperate(it.aLong);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                                }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        }<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                } else {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                        int ms = Math.min(is, as);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        while (it.hasNext()) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                                                        ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                                                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                                        }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                                }<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                        } else {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                                z = new double[2];<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                                while (it.hasNext()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                                        short ox = (short) toLong(z[0]);<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                                ai16data[it.oIndex + j] = ox;<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        }<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                        break;<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                case Dataset.ARRAYINT32:<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                        final int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        if (!da.isComplex()) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                                if (is == 1) {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                                        while (it.hasNext()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                                        }<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                } else if (as == 1) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        while (it.hasNext()) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                                int ox = (int) op.longOperate(it.aLong);<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                                }<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                        }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                                } else {<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                                        final int ms = Math.min(is, as);<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                                        while (it.hasNext()) {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                                                        ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.993"></a>
+<span class="sourceLineNo">994</span>                                                }<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                                        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                                }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        } else {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                                z = new double[2];<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                                while (it.hasNext()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                        int ox = (int) toLong(z[0]);<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                                ai32data[it.oIndex + j] = ox;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                        break;<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                case Dataset.ARRAYINT64:<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                        final long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        if (!da.isComplex()) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                if (is == 1) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                        while (it.hasNext()) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                        }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                } else if (as == 1) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        while (it.hasNext()) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                long ox = op.longOperate(it.aLong);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                                }<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                } else {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        int ms = Math.min(is, as);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                        while (it.hasNext()) {<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                        ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j));<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                        }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                        } else {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                z = new double[2];<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                while (it.hasNext()) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                        long ox = toLong(z[0]);<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                ai64data[it.oIndex + j] = ox;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                        }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                        }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        break;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                case Dataset.FLOAT32:<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                        final float[] f32data = ((FloatDataset) result).getData();<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                        if (!da.isComplex()) {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                while (it.hasNext()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        } else { // only for complex input<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                z = new double[2];<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        f32data[it.oIndex] = (float) z[0];<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                }<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                        }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                        break;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                case Dataset.FLOAT64:<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        final double[] f64data = ((DoubleDataset) result).getData();<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span><a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                        if (!da.isComplex()) {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                while (it.hasNext()) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                        } else {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                z = new double[2];<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                while (it.hasNext()) {<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                        f64data[it.oIndex] = z[0];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                        break;<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                case Dataset.ARRAYFLOAT32:<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                        final float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span><a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                        if (!da.isComplex()) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                if (is == 1) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        while (it.hasNext()) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                        }<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                } else if (as == 1) {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                        while (it.hasNext()) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                float ox = (float) op.doubleOperate(it.aDouble);<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                                }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        }<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                } else {<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        int ms = Math.min(is, as);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        while (it.hasNext()) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble);<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                                        af32data[it.oIndex + j] = (float) op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                        }<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                }<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                        } else {<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                z = new double[2];<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                while (it.hasNext()) {<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        float ox = (float) z[0];<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                                af32data[it.oIndex + j] = ox;<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                }<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                        break;<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                case Dataset.ARRAYFLOAT64:<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                        final double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span><a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        if (!da.isComplex()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                if (is == 1) {<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        while (it.hasNext()) {<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                } else if (as == 1) {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        while (it.hasNext()) {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                                final double ix = it.aDouble;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                double ox = op.doubleOperate(ix);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                }<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                        }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                } else {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                        int ms = Math.min(is, as);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                        while (it.hasNext()) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble);<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                for (int j = 1; j &lt; ms; j++) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j));<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                }<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                        } else {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                z = new double[2];<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                while (it.hasNext()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        double ox = z[0];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                af64data[it.oIndex + j] = ox;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                        }<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                        break;<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                case Dataset.COMPLEX64:<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                        final float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                        z = new double[2];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span><a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        if (!da.isComplex()) {<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                while (it.hasNext()) {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                        } else {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                while (it.hasNext()) {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        break;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                case Dataset.COMPLEX128:<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                        final double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                        z = new double[2];<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span><a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        if (!da.isComplex()) {<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                                while (it.hasNext()) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>                                        op.complexOperate(z, it.aDouble, 0);<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                                        c128data[it.oIndex] = z[0];<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                                }<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>                        } else {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                                while (it.hasNext()) {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                                        op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1));<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                                        c128data[it.oIndex] = z[0];<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                                }<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        }<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        break;<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                default:<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                result.setName(op.toString(da.getName()));<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                return result;<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>        }<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span><a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>        /**<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * Operate on a dataset<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         * <a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>         * @param op<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>         *            binary operator<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>         * @param a<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>         * @param b<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>         * @param o<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>         *            output can be null - in which case, a new dataset is created<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>         * @return a op b, operation on a and b<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>         */<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>        public static Dataset operate(final BinaryOperation op, final Object a, final Object b, final Dataset o) {<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                final Dataset da = a instanceof Dataset ? (Dataset) a : DatasetFactory.createFromObject(a);<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                final Dataset db = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span><a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                final BroadcastIterator it = BroadcastIterator.createIterator(da, db, o, true);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                final Dataset result = it.getOutput();<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                it.setOutputDouble(result.hasFloatingPointElements() || da.isComplex() || db.isComplex());<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                final int is = result.getElementsPerItem();<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                int as = da.getElementsPerItem();<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                int bs = db.getElementsPerItem();<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                final double[] z;<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span><a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                switch (result.getDType()) {<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                case Dataset.BOOL:<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        boolean[] bdata = ((BooleanDataset) result).getData();<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span><a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        bdata[it.oIndex] = op.booleanOperate(it.aLong, it.aLong);<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                }<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                        } else {<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                z = new double[2];<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                if (!db.isComplex()) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        while (it.hasNext()) {<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                        }<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                } else if (!da.isComplex()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        while (it.hasNext()) {<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                } else {<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        while (it.hasNext()) {<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                bdata[it.oIndex] = z[0] != 0;<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                        }<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                        break;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                case Dataset.INT8:<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                        byte[] i8data = ((ByteDataset) result).getData();<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span><a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                while (it.hasNext()) {<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                        i8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.aLong);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                }<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        } else {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                z = new double[2];<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                if (!db.isComplex()) { // only a complex<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        while (it.hasNext()) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        }<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                        while (it.hasNext()) {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        }<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                } else {<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        while (it.hasNext()) {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                                i8data[it.oIndex] = (byte) toLong(z[0]);<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                        }<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                        break;<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                case Dataset.INT16:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                        short[] i16data = ((ShortDataset) result).getData();<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                while (it.hasNext()) {<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                        i16data[it.oIndex] = (short) op.longOperate(it.aLong, it.aLong);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                        } else {<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                z = new double[2];<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                if (!db.isComplex()) { // only a complex<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        while (it.hasNext()) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                        while (it.hasNext()) {<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                        }<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                } else {<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                        while (it.hasNext()) {<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                                i16data[it.oIndex] = (short) toLong(z[0]);<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        }<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                        }<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                        break;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                case Dataset.INT32:<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                        int[] i32data = ((IntegerDataset) result).getData();<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span><a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                while (it.hasNext()) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                        i32data[it.oIndex] = (int) op.longOperate(it.aLong, it.aLong);<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                        } else {<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                z = new double[2];<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                if (!db.isComplex()) { // only a complex<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                        while (it.hasNext()) {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        }<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        while (it.hasNext()) {<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                        }<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                } else {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                        while (it.hasNext()) {<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                                i32data[it.oIndex] = (int) toLong(z[0]);<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        }<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                }<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                        }<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                        break;<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                case Dataset.INT64:<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                        long[] i64data = ((LongDataset) result).getData();<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span><a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                while (it.hasNext()) {<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                        i64data[it.oIndex] = op.longOperate(it.aLong, it.aLong);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                }<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                        } else {<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                z = new double[2];<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                if (!db.isComplex()) { // only a complex<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        while (it.hasNext()) {<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        }<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                        while (it.hasNext()) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                        }<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                } else {<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                        while (it.hasNext()) {<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                i64data[it.oIndex] = toLong(z[0]);<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                        }<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                        }<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                        break;<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                case Dataset.ARRAYINT8:<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                        byte[] ai8data = ((CompoundByteDataset) result).getData();<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span><a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                if (is == 1) {<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        while (it.hasNext()) {<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                                ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                        }<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                } else { // broadcast to other elements of output if possible<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        int ms;<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                ms = Math.min(is, bs);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                while (it.hasNext()) {<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(it.aLong,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                        }<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                ms = Math.min(is, as);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                while (it.hasNext()) {<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                                                it.bLong);<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                        }<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                        } else {<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                                while (it.hasNext()) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                                        ai8data[it.oIndex] = (byte) op.longOperate(it.aLong, it.bLong);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                                                                ai8data[it.oIndex + j] = (byte) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>                                                        }<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                                                }<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>                                        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>                                }<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>                        } else {<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>                                z = new double[2];<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>                                if (!db.isComplex()) { // only a complex<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>                                        while (it.hasNext()) {<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>                                                }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>                                        }<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>                                        while (it.hasNext()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>                                                }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>                                        }<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                                } else {<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                                        while (it.hasNext()) {<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                                                byte ox = (byte) toLong(z[0]);<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                                                        ai8data[it.oIndex + j] = ox;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                                                }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                                        }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                                }<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        }<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                        break;<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                case Dataset.ARRAYINT16:<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        short[] ai16data = ((CompoundShortDataset) result).getData();<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span><a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                                if (is == 1) {<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>                                        while (it.hasNext()) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                                                ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>                                        }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                                } else {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>                                        int ms;<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                                ms = Math.min(is, bs);<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                                while (it.hasNext()) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(it.aLong,<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                        }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                }<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                ms = Math.min(is, as);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                while (it.hasNext()) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                                it.bLong);<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                        } else {<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                while (it.hasNext()) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                                        ai16data[it.oIndex] = (short) op.longOperate(it.aLong, it.bLong);<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                                                ai16data[it.oIndex + j] = (short) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                                        }<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                                }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                        }<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                }<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                        } else {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                z = new double[2];<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                if (!db.isComplex()) { // only a complex<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                        while (it.hasNext()) {<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                short ox = (short) toLong(z[0]);<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                }<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                        }<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                        while (it.hasNext()) {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                                short ox = (short) toLong(z[0]);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                                }<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                        }<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                } else {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>                                        while (it.hasNext()) {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                                short ox = (short) toLong(z[0]);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                                        ai16data[it.oIndex + j] = ox;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                                }<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                        }<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                }<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                        }<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                        break;<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                case Dataset.ARRAYINT32:<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                        int[] ai32data = ((CompoundIntegerDataset) result).getData();<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                if (is == 1) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                        while (it.hasNext()) {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                        }<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                } else {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                        int ms;<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                                ms = Math.min(is, bs);<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                                while (it.hasNext()) {<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(it.aLong,<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                        }<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                }<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                ms = Math.min(is, as);<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                while (it.hasNext()) {<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                                                                it.bLong);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                                        }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                                }<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        } else {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                while (it.hasNext()) {<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                        ai32data[it.oIndex] = (int) op.longOperate(it.aLong, it.bLong);<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                                ai32data[it.oIndex + j] = (int) op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                                }<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                        }<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                        } else {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                z = new double[2];<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                if (!db.isComplex()) { // only a complex<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                        while (it.hasNext()) {<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                short ox = (short) toLong(z[0]);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                                }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        while (it.hasNext()) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                short ox = (short) toLong(z[0]);<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                }<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                        }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                } else {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                        while (it.hasNext()) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                short ox = (short) toLong(z[0]);<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                        ai32data[it.oIndex + j] = ox;<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                                }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        }<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                        }<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                        break;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                case Dataset.ARRAYINT64:<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                        long[] ai64data = ((CompoundLongDataset) result).getData();<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span><a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                if (is == 1) {<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                        while (it.hasNext()) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                        }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                } else {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                        int ms;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                ms = Math.min(is, bs);<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                while (it.hasNext()) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                                ai64data[it.oIndex + j] = op.longOperate(it.aLong, db.getElementLongAbs(it.bIndex + j));<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                        }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                ms = Math.min(is, as);<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                while (it.hasNext()) {<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j), it.bLong);<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                                        }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                                        } else {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>                                                while (it.hasNext()) {<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                                                        ai64data[it.oIndex] = op.longOperate(it.aLong, it.bLong);<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>                                                                ai64data[it.oIndex + j] = op.longOperate(da.getElementLongAbs(it.aIndex + j),<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>                                                                                db.getElementLongAbs(it.bIndex + j));<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>                                                        }<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>                                                }<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>                                        }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>                                }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                        } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                                z = new double[2];<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>                                if (!db.isComplex()) { // only a complex<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                                        while (it.hasNext()) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                                                long ox = toLong(z[0]);<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                                }<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                                        while (it.hasNext()) {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>                                                long ox = toLong(z[0]);<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>                                                }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                                        }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                                } else {<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                        while (it.hasNext()) {<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                                                long ox = toLong(z[0]);<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                                                        ai64data[it.oIndex + j] = ox;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>                                                }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                                        }<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>                                }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>                        }<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>                        break;<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                case Dataset.FLOAT32:<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>                        float[] f32data = ((FloatDataset) result).getData();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>                                while (it.hasNext()) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>                                        f32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                                }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>                        } else {<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>                                z = new double[2];<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>                                if (!db.isComplex()) { // only a complex<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>                                        while (it.hasNext()) {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                                        }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>                                        while (it.hasNext()) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>                                        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>                                } else {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>                                        while (it.hasNext()) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>                                                f32data[it.oIndex] = (float) z[0];<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>                                        }<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>                                }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>                        }<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>                        break;<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>                case Dataset.FLOAT64:<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>                        double[] f64data = ((DoubleDataset) result).getData();<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span><a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>                                while (it.hasNext()) {<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>                                        f64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>                                }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>                        } else {<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>                                z = new double[2];<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                                if (!db.isComplex()) { // only a complex<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>                                        while (it.hasNext()) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>                                                f64data[it.oIndex] = z[0];<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                                        }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                                        while (it.hasNext()) {<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>                                                f64data[it.oIndex] = z[0];<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>                                        }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>                                } else {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>                                        while (it.hasNext()) {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                                                f64data[it.oIndex] = z[0];<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                                        }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>                                }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>                        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>                        break;<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>                case Dataset.ARRAYFLOAT32:<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>                        float[] af32data = ((CompoundFloatDataset) result).getData();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span><a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                                if (is == 1) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                                        while (it.hasNext()) {<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                                                af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                                        }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                                } else {<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                                        int ms;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                                                ms = Math.min(is, bs);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                                                while (it.hasNext()) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(it.aDouble,<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>                                                        }<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                                                }<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                                                ms = Math.min(is, as);<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>                                                while (it.hasNext()) {<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                                                                af32data[it.oIndex + j] = (float) op<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                                                                                .doubleOperate(da.getElementDoubleAbs(it.aIndex + j), it.bDouble);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>                                                        }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                                                }<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                                        } else {<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                                                while (it.hasNext()) {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                                                        af32data[it.oIndex] = (float) op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                                                                af32data[it.oIndex + j] = (float) op.doubleOperate(<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                                                                                da.getElementDoubleAbs(it.aIndex + j), db.getElementDoubleAbs(it.bIndex + j));<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                                                        }<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                                }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                        }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                }<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                        } else {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                z = new double[2];<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                if (!db.isComplex()) { // only a complex<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                        while (it.hasNext()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                                float ox = (float) z[0];<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                                }<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                        }<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                        while (it.hasNext()) {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                                float ox = (float) z[0];<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                                }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                } else {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                        while (it.hasNext()) {<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                                                float ox = (float) z[0];<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                                        af32data[it.oIndex + j] = ox;<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                                }<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        }<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                        }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                        break;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                case Dataset.ARRAYFLOAT64:<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                        double[] af64data = ((CompoundDoubleDataset) result).getData();<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span><a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                        if (!da.isComplex() &amp;&amp; !db.isComplex()) {<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                if (is == 1) {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                        while (it.hasNext()) {<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                                af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                        }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                                } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                        int ms;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                        if (as == 1 &amp;&amp; bs != 1) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                                ms = Math.min(is, bs);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                                while (it.hasNext()) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(it.aDouble,<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                                                        }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>                                                }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                                        } else if (as != 1 &amp;&amp; bs == 1) {<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                                                ms = Math.min(is, as);<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                                                while (it.hasNext()) {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                                                                it.bDouble);<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                                        }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                                                }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                        } else {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                                ms = Math.min(is, Math.min(as, bs));<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                                while (it.hasNext()) {<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                                        af64data[it.oIndex] = op.doubleOperate(it.aDouble, it.bDouble);<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                                        for (int j = 1; j &lt; ms; j++) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                                                                af64data[it.oIndex + j] = op.doubleOperate(da.getElementDoubleAbs(it.aIndex + j),<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                                                                                db.getElementDoubleAbs(it.bIndex + j));<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                                                        }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                                                }<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>                                        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>                                }<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>                        } else {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                                z = new double[2];<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                                if (!db.isComplex()) { // only a complex<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>                                        while (it.hasNext()) {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                                                double ox = z[0];<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                                                }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                                        }<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                                        while (it.hasNext()) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                                double ox = z[0];<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                                }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                        }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                                } else {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                        while (it.hasNext()) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1),<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                                                it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                                                double ox = z[0];<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                                                        af64data[it.oIndex + j] = ox;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                                }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        }<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                        }<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                        break;<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                case Dataset.COMPLEX64:<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                        float[] c64data = ((ComplexFloatDataset) result).getData();<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                        z = new double[2];<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span><a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                                if (!db.isComplex()) { // only a complex<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>                                        while (it.hasNext()) {<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                                        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                                        while (it.hasNext()) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                } else {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                        while (it.hasNext()) {<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                                c64data[it.oIndex] = (float) z[0];<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                                c64data[it.oIndex + 1] = (float) z[1];<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                        }<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                }<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                        } else {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                while (it.hasNext()) {<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        c64data[it.oIndex] = (float) z[0];<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                        c64data[it.oIndex + 1] = (float) z[1];<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                                }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                        }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                        break;<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>                case Dataset.COMPLEX128:<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>                        double[] c128data = ((ComplexDoubleDataset) result).getData();<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>                        z = new double[2];<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>                        if (da.isComplex() || db.isComplex()) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>                                if (!db.isComplex()) { // only a complex<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>                                        while (it.hasNext()) {<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble, 0);<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                                                c128data[it.oIndex] = z[0];<a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>                                        }<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>                                } else if (!da.isComplex()) { // only b complex<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>                                        while (it.hasNext()) {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>                                                op.complexOperate(z, it.aDouble, 0, it.bDouble, db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>                                                c128data[it.oIndex] = z[0];<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>                                        }<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>                                } else {<a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                                        while (it.hasNext()) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                                                op.complexOperate(z, it.aDouble, da.getElementDoubleAbs(it.aIndex + 1), it.bDouble,<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>                                                                db.getElementDoubleAbs(it.bIndex + 1));<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>                                                c128data[it.oIndex] = z[0];<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>                                                c128data[it.oIndex + 1] = z[1];<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>                                        }<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>                                }<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>                        } else {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>                                while (it.hasNext()) {<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>                                        op.complexOperate(z, it.aDouble, 0, it.bDouble, 0);<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                                        c128data[it.oIndex] = z[0];<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>                                        c128data[it.oIndex + 1] = z[1];<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span>                                }<a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>                        }<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>                        break;<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>                default:<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>                        throw new UnsupportedOperationException("operate does not support this dataset type");<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>                }<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span><a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>                // set the name based on the changes made<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>                result.setName(op.toString(da.getName(), db.getName()));<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span><a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>                return result;<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>}<a name="line.1893"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Outliers.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Outliers.html
new file mode 100644
index 0000000..3e1a170
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Outliers.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>/**<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * Estimators of the scale of a Dataset.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * &lt;p&gt;<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * A class of static methods to produce estimations of the scale of variation within a Dataset.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * The available estimators are:<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * &lt;ul&gt;<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * &lt;li&gt; Median Absolute Deviation &lt;/li&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * &lt;li&gt; S&lt;sub&gt;n&lt;/sub&gt; of Croux and Rousseeuw (1992).&lt;/li&gt;<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * &lt;/ul&gt; <a name="line.20"></a>
+<span class="sourceLineNo">021</span> * &lt;p&gt;<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Croux, C. and P. J. Rousseeuw, "Time-efficient algorithms for two highly robust estimators of scale", Computational Statistics, Volume 1, eds. Y. Dodge and J.Whittaker, Physica-Verlag, Heidelberg, pp411--428 (1992).<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class Outliers {<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private final static double MADSCALEFACTOR = 1.4826;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private final static double SNSCALEFACTOR = 1.1926;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        <a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * Returns the Median Absolute Deviation (MAD) and the median. <a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * @param data<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         *                      The data for which the median and the MAD are to be calculated<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @return A two-element array of doubles, consisting of the MAD and the median of the data<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public static double[] medianAbsoluteDeviation(Dataset data) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                <a name="line.36"></a>
+<span class="sourceLineNo">037</span>                double median = (Double)Stats.median(data);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = Maths.subtract(data, median);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                data = Maths.abs(data);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                double median2 = (Double)Stats.median(data);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                double mad = MADSCALEFACTOR * median2;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                <a name="line.42"></a>
+<span class="sourceLineNo">043</span>                return new double[]{mad, median};<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        }<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        <a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Returns the Sn estimator of Croux and Rousseeuw.<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * &lt;p&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * This is the simple O(n²) version of the calculation algorithm.<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param data<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         *                      The data for which the estimator is to be calculated.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @return The value of the Sn estimator for the data<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        public static double snNaive(Dataset data) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                <a name="line.55"></a>
+<span class="sourceLineNo">056</span>                Dataset medAbs = DatasetFactory.zeros(data);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                Dataset dif = DatasetFactory.zeros(data);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                <a name="line.58"></a>
+<span class="sourceLineNo">059</span>                IndexIterator it = data.getIterator();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                int count = 0;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                while (it.hasNext()) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        double val = data.getElementDoubleAbs(it.index);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        Maths.subtract(data, val, dif);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        Maths.abs(dif,dif);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        //Lower median - Math.floor((n/2)+1) of sorted<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        dif.sort(null);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        medAbs.setObjectAbs(count++, lowMed(dif));<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                <a name="line.69"></a>
+<span class="sourceLineNo">070</span>                <a name="line.70"></a>
+<span class="sourceLineNo">071</span>                //Higher median - Math.floor((n+1)/2) of sorted<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                medAbs.sort(null);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                double median = highMed(medAbs);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                <a name="line.74"></a>
+<span class="sourceLineNo">075</span>                return median * SNSCALEFACTOR;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        <a name="line.77"></a>
+<span class="sourceLineNo">078</span>        /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * Returns the Sn estimator of Croux and Rousseeuw.<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * &lt;p&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * This is the complex O(nlog n) version of the calculation algorithm.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @param data<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         *                      The data for which the estimator is to be calculated.<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @return The value of the Sn estimator for the data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public static double snFast(Dataset data) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                <a name="line.87"></a>
+<span class="sourceLineNo">088</span>                Dataset sorted = data.clone();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                sorted.sort(null);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                <a name="line.90"></a>
+<span class="sourceLineNo">091</span>                Dataset medAbs = DatasetFactory.zeros(data);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                <a name="line.92"></a>
+<span class="sourceLineNo">093</span>                IndexIterator it = data.getIterator();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                int count = 0;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                while (it.hasNext()) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        MedianOfTwoSortedSets snuff = new MedianForSn(sorted, it.index);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        medAbs.setObjectAbs(count++, snuff.get());<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                <a name="line.99"></a>
+<span class="sourceLineNo">100</span>                <a name="line.100"></a>
+<span class="sourceLineNo">101</span>                //Higher median - Math.floor((n+1)/2) of sorted<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                medAbs.sort(null);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                double median = highMed(medAbs);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                <a name="line.104"></a>
+<span class="sourceLineNo">105</span>                return median * SNSCALEFACTOR;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        <a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * Returns the lomed<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * &lt;p&gt;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * Returns the lomed (low median) of a sorted Dataset.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * @param data<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         *                      A sorted Dataset for which the low median is to be calculated.  <a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @return<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         *              The value of the lomed of the data<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public static double lowMed(Dataset data) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                return data.getElementDoubleAbs((int)Math.floor((data.getSize()/2)));<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        <a name="line.120"></a>
+<span class="sourceLineNo">121</span>        /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * Returns the himed<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * &lt;p&gt;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * Returns the himed (high median) of a sorted Dataset.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * @param data<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         *                      A sorted Dataset for which the low median is to be calculated.  <a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @return<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         *              The value of the himed of the data<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        public static double highMed(Dataset data) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                return data.getElementDoubleAbs((int)Math.floor((data.getSize()+1)/2-1));<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * Calculates the overall median of two double arrays<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param a<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param b<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         *                      the two arrays for which the overall median is desired. <a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @return the overall median of the two arrays<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        public static double medianOFTwoPrimitiveArrays (double[] a, double[] b) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                MedianOfTwoArrays medio = new MedianOfTwoArrays(a, b);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                return medio.get();<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>}<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>/**<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * Allows the calculation of the median of two arrays.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * &lt;p&gt;<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * Subclasses must implement getA() and getB() to return the elements of A or B<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * at the given index. The length of a must be less than or equal to that of b.<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * The constructor must set the sizes nA and nB.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>abstract class MedianOfTwoSortedSets{<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        int nB, nA, diff, diffLeft;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        <a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public final double get() {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                // Initialize the left and right markers for the set of candidate <a name="line.158"></a>
+<span class="sourceLineNo">159</span>                // values. These are inclusive on both left and right.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                int leftA = 0, leftB = 0;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                @SuppressWarnings("unused") // keep rightA for symmetry<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                int rightA = nB-1, rightB = nB-1;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                <a name="line.163"></a>
+<span class="sourceLineNo">164</span>                while (nB &gt; 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        // For 0-based indexing, the lomed is the element at floor((n+1)/2)-1<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        int medianIndex = (int) Math.floor((nB+1)/2)-1;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        int medianAIndex = leftA + medianIndex,<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                        medianBIndex = leftB + medianIndex;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        double medA = getAm(medianAIndex),<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                        medB = getBm(medianBIndex);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        int smallerShift = 0;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (nB % 2 == 0) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                // N even: the smaller lomed, as well as anything smaller than it, cannot be the overall median<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                smallerShift = +1;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                        <a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        if (medA &gt;= medB) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                rightA = medianAIndex;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                leftB = medianBIndex + smallerShift;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        } else {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                rightB = medianBIndex;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                leftA = medianAIndex + smallerShift;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        <a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        // Different lengths<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        // It should be floor((l_m-1 + 1)/2))<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        // this is newLength, defined above<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        // Difference between left and right<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        nB = rightB - leftB + 1;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>                // when the array is length 1, right and left will be the same.<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                // The lomed of a two element array is the smaller of the two<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                return Math.min(getAm(leftA), getBm(leftB));<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        <a name="line.197"></a>
+<span class="sourceLineNo">198</span>        // Get the value in the expanded array<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        private double getAm(int i) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                int firstElement = diffLeft,<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                lastElement = diffLeft + nA - 1;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                if (i &lt; firstElement) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        return Double.NEGATIVE_INFINITY;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                } else if (i &gt; lastElement) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        return Double.POSITIVE_INFINITY;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                } else {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        return getA(i - diffLeft);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        <a name="line.210"></a>
+<span class="sourceLineNo">211</span>        private double getBm(int i) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                return getB(i);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>        // Get the values in the original arrays<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        protected abstract double getA(int i);  <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        protected abstract double getB(int i);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        <a name="line.218"></a>
+<span class="sourceLineNo">219</span>        // Call this to set up the length difference variables. <a name="line.219"></a>
+<span class="sourceLineNo">220</span>        protected void setDiffs() {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                diff = nB - nA;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                diffLeft = diff/2;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>}<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>class MedianOfTwoArrays extends MedianOfTwoSortedSets {<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        double[] a, b;<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>        public MedianOfTwoArrays(double[] ain, double[] bin) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                if (bin.length &gt;= ain.length) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        this.a = ain;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        nA = ain.length;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        this.b = bin;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                        nB = bin.length;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                } else {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        this.a = bin;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        nA = bin.length;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        this.b = ain;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                        nB = ain.length;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                }<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                setDiffs();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        protected double getA(int i) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return a[i];<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        protected double getB(int i) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                return b[i];<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>}<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>class MedianForSn extends MedianOfTwoSortedSets {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        Dataset xj;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        int referenceIndex;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        boolean lowerIsBigger;<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        public MedianForSn(Dataset xj, int referenceIndex) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                this.xj = xj;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                this.referenceIndex = referenceIndex;<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>                // determine which of the two halves of the array is larger<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                int lowerSize = referenceIndex, upperSize = xj.getSize() - referenceIndex - 1;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                lowerIsBigger = lowerSize &gt; upperSize;<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>                // Set the array sizes<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                if (lowerIsBigger) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        nA = upperSize;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        nB = lowerSize;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                } else {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        nA = lowerSize;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        nB = upperSize;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                setDiffs();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>        @Override<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        protected double getA(int i) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                return (!lowerIsBigger) ? getLower(i) : getUpper(i);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        protected double getB(int i) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                return (!lowerIsBigger) ? getUpper(i) : getLower(i);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        }<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        <a name="line.286"></a>
+<span class="sourceLineNo">287</span>        private double getLower(int i) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                return xj.getDouble(referenceIndex) - xj.getDouble(referenceIndex - 1 - i);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        private double getUpper(int i) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                return xj.getDouble(i + referenceIndex + 1) - xj.getDouble(referenceIndex);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
+<span class="sourceLineNo">293</span>}<a name="line.293"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/PositionIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/PositionIterator.html
new file mode 100644
index 0000000..b4a92c0
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/PositionIterator.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * &lt;p&gt;Class to provide iteration through a dataset&lt;/p&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * &lt;p&gt;Instantiate an iterator and use it in a while loop:<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * &lt;pre&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Dataset ds = DatasetFactory.createLinearSpace(DoubleDataset.class, 0, 10, 0.25);<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * PositionIterator iter = ds.getPositionIterator();<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * int[] pos = iter.getPos()<a name="line.21"></a>
+<span class="sourceLineNo">022</span> *<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * while (iter.hasNext()) {<a name="line.23"></a>
+<span class="sourceLineNo">024</span> *     ds.set(1.2, pos);<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * }<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * &lt;/pre&gt;<a name="line.26"></a>
+<span class="sourceLineNo">027</span> *<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class PositionIterator extends IndexIterator {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private int offset;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        final private int[] shape;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        final private int[] start;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        final private int[] stop;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        final private int[] step;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        final private int endrank;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        final private boolean[] omit; // axes to miss out<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * position in dataset<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        final private int[] pos;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        private boolean once;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        final private boolean zero; // no iterations allowed<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Constructor for an iterator over elements of a dataset that are within<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * the shape<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         *<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * @param shape<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public PositionIterator(int[] shape) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this(new SliceND(shape), null);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Constructor for an iterator over a single item broadcasted to given shape<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         *<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param offset offset to single item<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param shape<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public PositionIterator(int offset, int[] shape) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                this(offset, new SliceND(shape), null);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Constructor for an iterator that misses out several axes<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param axes missing axes, can be null for full dataset<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        public PositionIterator(int[] shape, int... axes) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this(new SliceND(shape), axes);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>        /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * Constructor for an iterator that misses out several axes<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param shape<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param slice<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param axes missing axes<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public PositionIterator(int[] shape, Slice[] slice, int[] axes) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                this(new SliceND(shape, slice), axes);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * Constructor for an iterator that misses out several axes<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @param start<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * @param stop<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * @param step<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param axes missing axes<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         */<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        public PositionIterator(int[] shape, int[] start, int[] stop, int[] step, int[] axes) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                this(new SliceND(shape, start, stop, step), axes);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>        /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * Constructor for an iterator that misses out several axes<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param slice<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param axes missing axes<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public PositionIterator(SliceND slice, int... axes) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                this(0, slice, axes);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Constructor for an iterator that misses out several axes<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * <a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param offset offset to start with<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @param slice<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * @param axes missing axes<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        public PositionIterator(int offset, SliceND slice, int... axes) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                this.offset = offset;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                int[] oshape = slice.getShape();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                start = slice.getStart();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                stop  = slice.getStop();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                step  = slice.getStep();<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                for (int s : step) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        if (s &lt; 0) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                throw new UnsupportedOperationException("Negative steps not implemented");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                int rank = oshape.length;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                endrank = rank - 1;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>                omit = new boolean[rank];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                shape = oshape.clone();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                if (axes != null) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        for (int a : axes) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                                a = ShapeUtils.checkAxis(rank, a);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                                if (a &gt;= 0 &amp;&amp; a &lt;= endrank) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                                        omit[a] = true;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                        shape[a] = 1;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                                } else if (a &gt; endrank) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                        throw new IllegalArgumentException("Specified axis exceeds dataset rank");<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>                pos = new int[rank];<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>                zero = ShapeUtils.calcSize(shape) == 0;<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>                reset();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>        @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        public boolean hasNext() {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                // now move on one position<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                if (zero) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        return false;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                if (once) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        once = false;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                        return true;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        if (omit[j]) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                continue;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        pos[j] += step[j];<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        if (pos[j] &gt;= stop[j]) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                                pos[j] = start[j];<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                return true;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        @Override<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        public int[] getPos() {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                return pos;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>        /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         * @return omit array - array where true means miss out<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public boolean[] getOmit() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return omit;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public void reset() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        pos[i] = start[i];<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                if (zero) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                        return;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>                int j = 0;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                for (; j &lt;= endrank; j++) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        if (!omit[j]) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                                break;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (j &gt; endrank) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        once = true;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        return;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>                if (omit[endrank]) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        pos[endrank] = start[endrank];<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        <a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        for (int i = endrank - 1; i &gt;= 0; i--) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                if (!omit[i]) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                        pos[i] -= step[i];<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                        break;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                } else {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        pos[endrank] -= step[endrank];<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>                index = offset;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        @Override<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        public int[] getShape() {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                return shape;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public int[] getStop() {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                return stop;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>}<a name="line.228"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/RGBDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/RGBDataset.html
new file mode 100644
index 0000000..dd85748
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/RGBDataset.html
@@ -0,0 +1,833 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * Class to hold colour datasets as red, green, blue tuples of short integers<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class RGBDataset extends CompoundShortDataset implements Cloneable {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        // pin UID to base class<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private static final int ISIZE = 3; // number of elements per item<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        @Override<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public int getDType() {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                return Dataset.RGB;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create a null dataset<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public RGBDataset() {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                super(ISIZE);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        }<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public RGBDataset(final int... shape) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                super(ISIZE, shape);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public RGBDataset(final short[] data, final int... shape) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                super(ISIZE, data, shape);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * Copy a dataset<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param dataset<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public RGBDataset(final RGBDataset dataset) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                super(dataset);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public RGBDataset clone() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return new RGBDataset(this);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a dataset using given data (red, green and blue parts are given separately)<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param redData<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param greenData<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param blueData<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param shape (can be null to create 1D dataset)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public RGBDataset(final int[] redData, final int[] greenData, final int[] blueData, int... shape) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                int dsize = redData.length &gt; greenData.length ? greenData.length : redData.length;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                dsize = dsize &gt; blueData.length ? blueData.length : dsize;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                if (shape == null || shape.length == 0) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        shape = new int[] {dsize};<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                isize = ISIZE;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                size = ShapeUtils.calcSize(shape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                if (size != dsize) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        logger.error("Shape is not compatible with size of data array");<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        throw new IllegalArgumentException("Shape is not compatible with size of data array");<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                this.shape = shape.clone();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>                try {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        odata = data = createArray(size);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                } catch (Throwable t) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        throw new IllegalArgumentException(t);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        data[n++] = (short) redData[i];<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        data[n++] = (short) greenData[i];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        data[n++] = (short) blueData[i];<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * Create a dataset using given data (red, green and blue parts are given separately)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param redData<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * @param greenData<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param blueData<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * @param shape (can be null to create 1D dataset)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        public RGBDataset(final short[] redData, final short[] greenData, final short[] blueData, int... shape) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                int dsize = redData.length &gt; greenData.length ? greenData.length : redData.length;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                dsize = dsize &gt; blueData.length ? blueData.length : dsize;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                if (shape == null || shape.length == 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        shape = new int[] {dsize};<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                isize = ISIZE;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                size = ShapeUtils.calcSize(shape);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                if (size != dsize) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        logger.error("Shape is not compatible with size of data array");<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        throw new IllegalArgumentException("Shape is not compatible with size of data array");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                this.shape = shape.clone();<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>                try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        odata = data = createArray(size);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                } catch (Throwable t) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        throw new IllegalArgumentException(t);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                        data[n++] = redData[i];<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        data[n++] = greenData[i];<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        data[n++] = blueData[i];<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>        /**<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * Create a dataset using given data (red, green and blue parts are given separately)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * @param redData<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param greenData<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param blueData<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param shape (can be null to create 1D dataset)<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        public RGBDataset(final byte[] redData, final byte[] greenData, final byte[] blueData, int... shape) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                int dsize = redData.length &gt; greenData.length ? greenData.length : redData.length;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                dsize = dsize &gt; blueData.length ? blueData.length : dsize;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                if (shape == null || shape.length == 0) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        shape = new int[] {dsize};<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                isize = ISIZE;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                size = ShapeUtils.calcSize(shape);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                if (size != dsize) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        logger.error("Shape is not compatible with size of data array");<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException("Shape is not compatible with size of data array");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                this.shape = shape.clone();<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>                try {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                        odata = data = createArray(size);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                } catch (Throwable t) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        throw new IllegalArgumentException(t);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>                for (int i = 0, n = 0; i &lt; size; i++) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        data[n++] = (short) (0xff &amp; redData[i]);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        data[n++] = (short) (0xff &amp; greenData[i]);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        data[n++] = (short) (0xff &amp; blueData[i]);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>        /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         * Create a dataset using given colour data (colour components are given separately)<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @param red<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * @param green<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param blue<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public RGBDataset(final Dataset red, final Dataset green, final Dataset blue) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                super(ISIZE, red.getShapeRef());<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                red.checkCompatibility(green);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                red.checkCompatibility(blue);<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>                if (red.max().doubleValue() &gt; Short.MAX_VALUE || red.min().doubleValue() &lt; Short.MIN_VALUE ||<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                green.max().doubleValue() &gt; Short.MAX_VALUE || green.min().doubleValue() &lt; Short.MIN_VALUE || <a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                blue.max().doubleValue() &gt; Short.MAX_VALUE || blue.min().doubleValue() &lt; Short.MIN_VALUE) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        logger.warn("Some values are out of range and will be ");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                IndexIterator riter = red.getIterator();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                IndexIterator giter = green.getIterator();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                IndexIterator biter = blue.getIterator();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>                for (int i = 0; riter.hasNext() &amp;&amp; giter.hasNext() &amp;&amp; biter.hasNext();) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        data[i++] = (short) red.getElementLongAbs(riter.index);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        data[i++] = (short) green.getElementLongAbs(riter.index);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                        data[i++] = (short) blue.getElementLongAbs(riter.index);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>        /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * Create a dataset using given grey data<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @param grey<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        public RGBDataset(final Dataset grey) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                super(ISIZE, grey.getShapeRef());<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                IndexIterator giter = grey.getIterator();<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>                for (int i = 0; giter.hasNext();) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        final short g = (short) grey.getElementLongAbs(giter.index); <a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        data[i++] = g;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        data[i++] = g;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        data[i++] = g;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>        /**<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * Create a RGB dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * sequences or arrays are padded with zeros. The item size is the last dimension of the corresponding<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * elemental dataset<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         *<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param obj<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         * @return dataset with contents given by input<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public static RGBDataset createFromObject(final Object obj) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                CompoundShortDataset result = (CompoundShortDataset) DatasetUtils.createCompoundDataset(ShortDataset.createFromObject(obj), ISIZE);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                return new RGBDataset(result.data, result.shape);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>        /**<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         * Create a RGB dataset from a compound dataset (no normalisation performed)<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * @param a<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * @return RGB dataset (grey if input dataset has less than 3 elements per item)<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public static RGBDataset createFromCompoundDataset(final CompoundDataset a) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                if (a instanceof RGBDataset)<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                        return (RGBDataset) a;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                final int is = a.getElementsPerItem();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                if (is &lt; 3) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                        return new RGBDataset(a);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>                if (a instanceof CompoundShortDataset &amp;&amp; is == 3) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                        return new RGBDataset((short[]) a.getBuffer(), a.getShapeRef());<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>                final RGBDataset rgb = new RGBDataset(a.getShapeRef());<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                final IndexIterator it = a.getIterator();<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                int n = 0;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                while (it.hasNext()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        rgb.data[n++] = (short) a.getElementLongAbs(it.index);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        rgb.data[n++] = (short) a.getElementLongAbs(it.index + 1);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        rgb.data[n++] = (short) a.getElementLongAbs(it.index + 2);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>                return rgb;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>        /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         * Create a RGB dataset from hue, saturation and value dataset<a name="line.253"></a>
+<span class="sourceLineNo">254</span>         * @param hue (in degrees from -360 to 360)<a name="line.254"></a>
+<span class="sourceLineNo">255</span>         * @param saturation (from 0 to 1), can be null to denote 1<a name="line.255"></a>
+<span class="sourceLineNo">256</span>         * @param value (from 0 to 1)<a name="line.256"></a>
+<span class="sourceLineNo">257</span>         * @return RGB dataset<a name="line.257"></a>
+<span class="sourceLineNo">258</span>         */<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        public static RGBDataset createFromHSV(final Dataset hue, final Dataset saturation, final Dataset value) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                if ((saturation != null &amp;&amp; !hue.isCompatibleWith(saturation)) || !hue.isCompatibleWith(value)) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        throw new IllegalArgumentException("Hue, saturation and value datasets must have the same shape");<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>                RGBDataset result = new RGBDataset(hue.getShapeRef());<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                IndexIterator it = result.getIterator(true);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                int[] pos = it.getPos();<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                short[] rgb = new short[3];<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>                if (saturation == null) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        while (it.hasNext()) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                convertHSVToRGB(hue.getDouble(pos), 1, value.getDouble(pos), rgb);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                result.setAbs(it.index, rgb);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                } else {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        while (it.hasNext()) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                convertHSVToRGB(hue.getDouble(pos), saturation.getDouble(pos), value.getDouble(pos), rgb);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                result.setAbs(it.index, rgb);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>                return result;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>        /**<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * Create a RGB dataset from hue, saturation and lightness dataset<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @param hue (in degrees from -360 to 360)<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * @param saturation (from 0 to 1), can be null to denote 1<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         * @param lightness (from 0 to 1)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @return RGB dataset<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         */<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        public static RGBDataset createFromHSL(final Dataset hue, final Dataset saturation, final Dataset lightness) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                if ((saturation != null &amp;&amp; !hue.isCompatibleWith(saturation)) || !hue.isCompatibleWith(lightness)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                        throw new IllegalArgumentException("Hue, saturation and lightness datasets must have the same shape");<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>                RGBDataset result = new RGBDataset(hue.getShapeRef());<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                IndexIterator it = result.getIterator(true);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                int[] pos = it.getPos();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                short[] rgb = new short[3];<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (saturation == null) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        while (it.hasNext()) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                convertHSLToRGB(hue.getDouble(pos), 1, lightness.getDouble(pos), rgb);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                result.setAbs(it.index, rgb);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                } else {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        while (it.hasNext()) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                convertHSLToRGB(hue.getDouble(pos), saturation.getDouble(pos), lightness.getDouble(pos), rgb);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                                result.setAbs(it.index, rgb);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>                return result;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        }<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>        private static void convertHSVToRGB(double h, double s, double v, short[] rgb) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                double m = 255 * v;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                double chroma = s * m;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                m -= chroma;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                double hprime = h / 60.;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                if (hprime &lt; 0) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        hprime += 6;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                short sx = (short) (chroma * (1 - Math.abs((hprime % 2) - 1)) + m);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                short sc = (short) (chroma + m);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                short sm = (short) m;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                <a name="line.327"></a>
+<span class="sourceLineNo">328</span>                if (hprime &lt; 1) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        rgb[0] = sc;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                        rgb[1] = sx;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        rgb[2] = sm;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                } else if (hprime &lt; 2) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                        rgb[0] = sx;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                        rgb[1] = sc;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        rgb[2] = sm;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                } else if (hprime &lt; 3) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                        rgb[0] = sm;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                        rgb[1] = sc;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                        rgb[2] = sx;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                } else if (hprime &lt; 4) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                        rgb[0] = sm;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                        rgb[1] = sx;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                        rgb[2] = sc;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                } else if (hprime &lt; 5) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                        rgb[0] = sx;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        rgb[1] = sm;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        rgb[2] = sc;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                } else if (hprime &lt; 6) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        rgb[0] = sc;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        rgb[1] = sm;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                        rgb[2] = sx;<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                } else { // if hue is outside domain<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                        rgb[0] = sm;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                        rgb[1] = sm;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        rgb[2] = sm;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>        private static void convertHSLToRGB(double h, double s, double l, short[] rgb) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                double m = l;<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                double chroma = s * (1 - Math.abs(2 * m - 1));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                m -= chroma * 0.5;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                m *= 255;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                chroma *= 255;<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                double hprime = h / 60.;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                if (hprime &lt; 0) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        hprime += 6;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                short sx = (short) (chroma * (1 - Math.abs((hprime % 2) - 1)) + m);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                short sc = (short) (chroma + m);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                short sm = (short) m;<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                <a name="line.372"></a>
+<span class="sourceLineNo">373</span>                if (hprime &lt; 1) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                        rgb[0] = sc;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                        rgb[1] = sx;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                        rgb[2] = sm;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                } else if (hprime &lt; 2) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                        rgb[0] = sx;<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                        rgb[1] = sc;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                        rgb[2] = sm;<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                } else if (hprime &lt; 3) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                        rgb[0] = sm;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                        rgb[1] = sc;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                        rgb[2] = sx;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                } else if (hprime &lt; 4) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        rgb[0] = sm;<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        rgb[1] = sx;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                        rgb[2] = sc;<a name="line.388"></a>
+<span class="sourceLineNo">389</span>                } else if (hprime &lt; 5) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>                        rgb[0] = sx;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                        rgb[1] = sm;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                        rgb[2] = sc;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                } else if (hprime &lt; 6) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                        rgb[0] = sc;<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                        rgb[1] = sm;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                        rgb[2] = sx;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                } else { // if hue is outside domain<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                        rgb[0] = sm;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        rgb[1] = sm;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                        rgb[2] = sm;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>        @Override<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        public RGBDataset getSlice(SliceIterator siter) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                CompoundShortDataset base = super.getSlice(siter);<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>                RGBDataset slice = new RGBDataset();<a name="line.408"></a>
+<span class="sourceLineNo">409</span>                copyToView(base, slice, false, false);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>                slice.setData();<a name="line.410"></a>
+<span class="sourceLineNo">411</span>                return slice;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>        @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        public RGBDataset getView(boolean deepCopyMetadata) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>                RGBDataset view = new RGBDataset();<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                view.setData();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                return view;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>        /**<a name="line.422"></a>
+<span class="sourceLineNo">423</span>         * @return red value in the first position<a name="line.423"></a>
+<span class="sourceLineNo">424</span>         * @since 2.0<a name="line.424"></a>
+<span class="sourceLineNo">425</span>         */<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        public short getRed() {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return data[getFirst1DIndex()];<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>        /**<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * @param i<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * @return red value in given position<a name="line.432"></a>
+<span class="sourceLineNo">433</span>         */<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        public short getRed(final int i) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                return data[get1DIndex(i)];<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>        /**<a name="line.438"></a>
+<span class="sourceLineNo">439</span>         * @param i<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * @param j<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * @return red value in given position<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         */<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        public short getRed(final int i, final int j) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return data[get1DIndex(i, j)];<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>        /**<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * @param pos<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         * @return red value in given position<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         */<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        public short getRed(final int... pos) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                return data[get1DIndex(pos)];<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>        /**<a name="line.455"></a>
+<span class="sourceLineNo">456</span>         * @return green value in the first position<a name="line.456"></a>
+<span class="sourceLineNo">457</span>         * @since 2.0<a name="line.457"></a>
+<span class="sourceLineNo">458</span>         */<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        public short getGreen() {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return data[getFirst1DIndex() + 1];<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        /**<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * @param i<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         * @return green value in given position<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         */<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public short getGreen(final int i) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return data[get1DIndex(i) + 1];<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * @param i<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         * @param j<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @return green value in given position<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public short getGreen(final int i, final int j) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                return data[get1DIndex(i, j) + 1];<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>        /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         * @param pos<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         * @return green value in given position<a name="line.482"></a>
+<span class="sourceLineNo">483</span>         */<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        public short getGreen(final int... pos) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                return data[get1DIndex(pos) + 1];<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>        /**<a name="line.488"></a>
+<span class="sourceLineNo">489</span>         * @return blue value in the first position<a name="line.489"></a>
+<span class="sourceLineNo">490</span>         * @since 2.0<a name="line.490"></a>
+<span class="sourceLineNo">491</span>         */<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public short getBlue() {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return data[getFirst1DIndex() + 2];<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        /**<a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * @param i<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         * @return blue value in given position<a name="line.498"></a>
+<span class="sourceLineNo">499</span>         */<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        public short getBlue(final int i) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                return data[get1DIndex(i) + 2];<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        }<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>        /**<a name="line.504"></a>
+<span class="sourceLineNo">505</span>         * @param i<a name="line.505"></a>
+<span class="sourceLineNo">506</span>         * @param j<a name="line.506"></a>
+<span class="sourceLineNo">507</span>         * @return blue value in given position<a name="line.507"></a>
+<span class="sourceLineNo">508</span>         */<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        public short getBlue(final int i, final int j) {<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                return data[get1DIndex(i, j) + 2];<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        }<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>        /**<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         * @param pos<a name="line.514"></a>
+<span class="sourceLineNo">515</span>         * @return blue value in given position<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         */<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getBlue(final int... pos) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return data[get1DIndex(pos) + 2];<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        /**<a name="line.521"></a>
+<span class="sourceLineNo">522</span>         * Get a red value from given absolute index as a short - note this index does not<a name="line.522"></a>
+<span class="sourceLineNo">523</span>         * take in account the item size so be careful when using with multi-element items<a name="line.523"></a>
+<span class="sourceLineNo">524</span>         * <a name="line.524"></a>
+<span class="sourceLineNo">525</span>         * @param n<a name="line.525"></a>
+<span class="sourceLineNo">526</span>         * @return red value<a name="line.526"></a>
+<span class="sourceLineNo">527</span>         */<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public short getRedAbs(int n) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return data[n*isize];<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * Get a green value from given absolute index as a short - note this index does not<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         * take in account the item size so be careful when using with multi-element items<a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * <a name="line.535"></a>
+<span class="sourceLineNo">536</span>         * @param n<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * @return green value<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         */<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        public short getGreenAbs(int n) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                return data[n*isize + 1];<a name="line.540"></a>
+<span class="sourceLineNo">541</span>        }<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>        /**<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * Get a blue value from given absolute index as a short - note this index does not<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         * take in account the item size so be careful when using with multi-element items<a name="line.545"></a>
+<span class="sourceLineNo">546</span>         * <a name="line.546"></a>
+<span class="sourceLineNo">547</span>         * @param n<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         * @return blue value<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         */<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        public short getBlueAbs(int n) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                return data[n*isize + 2];<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        }<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">555</span>        // weights from NTSC formula aka ITU-R BT.601 for mapping RGB to luma<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        private static final double Wr = 0.299, Wg = 0.587, Wb = 0.114;<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>        /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         * Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping<a name="line.559"></a>
+<span class="sourceLineNo">560</span>         * @param clazz<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * @return a grey-scale dataset of given type<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         * @since 2.1<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         */<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        public &lt;T extends Dataset&gt; T createGreyDataset(final T clazz) {<a name="line.564"></a>
+<span class="sourceLineNo">565</span>                return (T) createGreyDataset(clazz, Wr, Wg, Wb);<a name="line.565"></a>
+<span class="sourceLineNo">566</span>        }<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>        /**<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * Convert colour dataset to a grey-scale one using given RGB to luma mapping<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @param clazz<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         * @param red weight<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * @param green weight<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         * @param blue weight<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param dtype<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @return a grey-scale dataset of given class<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         * @since 2.1<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         */<a name="line.577"></a>
+<span class="sourceLineNo">578</span>        @SuppressWarnings("unchecked")<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        public &lt;T extends Dataset&gt; T createGreyDataset(final T clazz, final double red, final double green, final double blue) {<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                return (T) createGreyDataset(red, green, blue, DTypeUtils.getDType(clazz));<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
+<span class="sourceLineNo">582</span><a name="line.582"></a>
+<span class="sourceLineNo">583</span>        /**<a name="line.583"></a>
+<span class="sourceLineNo">584</span>         * Convert colour dataset to a grey-scale one using the NTSC formula, aka ITU-R BT.601, for RGB to luma mapping<a name="line.584"></a>
+<span class="sourceLineNo">585</span>         * @param dtype<a name="line.585"></a>
+<span class="sourceLineNo">586</span>         * @return a grey-scale dataset of given class<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * @deprecated Use {@link RGBDataset#createGreyDataset(Class)}<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         */<a name="line.588"></a>
+<span class="sourceLineNo">589</span>        @Deprecated<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        public Dataset createGreyDataset(final int dtype) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                return createGreyDataset(Wr, Wg, Wb, dtype);<a name="line.591"></a>
+<span class="sourceLineNo">592</span>        }<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>        /**<a name="line.594"></a>
+<span class="sourceLineNo">595</span>         * Convert colour dataset to a grey-scale one using given RGB to luma mapping<a name="line.595"></a>
+<span class="sourceLineNo">596</span>         * @param red weight<a name="line.596"></a>
+<span class="sourceLineNo">597</span>         * @param green weight<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * @param blue weight<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         * @param dtype<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @return a grey-scale dataset of given type<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @deprecated Use {@link RGBDataset#createGreyDataset(Class, double, double, double)}<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        @Deprecated<a name="line.603"></a>
+<span class="sourceLineNo">604</span>        public Dataset createGreyDataset(final double red, final double green, final double blue, final int dtype) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                final Dataset grey = DatasetFactory.zeros(shape, dtype);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                final IndexIterator it = getIterator();<a name="line.606"></a>
+<span class="sourceLineNo">607</span><a name="line.607"></a>
+<span class="sourceLineNo">608</span>                int i = 0;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                while (it.hasNext()) {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        grey.setObjectAbs(i++, red*data[it.index] + green*data[it.index + 1] + blue*data[it.index + 2]);<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                }<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return grey;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>         * Extract red colour channel<a name="line.616"></a>
+<span class="sourceLineNo">617</span>         * @param clazz<a name="line.617"></a>
+<span class="sourceLineNo">618</span>         * @return a dataset of given class<a name="line.618"></a>
+<span class="sourceLineNo">619</span>         * @since 2.1<a name="line.619"></a>
+<span class="sourceLineNo">620</span>         */<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        public &lt;T extends Dataset&gt; T createRedDataset(final T clazz) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                return createColourChannelDataset(0, clazz, "red");<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        }<a name="line.623"></a>
+<span class="sourceLineNo">624</span><a name="line.624"></a>
+<span class="sourceLineNo">625</span>        /**<a name="line.625"></a>
+<span class="sourceLineNo">626</span>         * Extract green colour channel<a name="line.626"></a>
+<span class="sourceLineNo">627</span>         * @param clazz<a name="line.627"></a>
+<span class="sourceLineNo">628</span>         * @return a dataset of given class<a name="line.628"></a>
+<span class="sourceLineNo">629</span>         * @since 2.1<a name="line.629"></a>
+<span class="sourceLineNo">630</span>         */<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        public &lt;T extends Dataset&gt; T createGreenDataset(final T clazz) {<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                return createColourChannelDataset(1, clazz, "green");<a name="line.632"></a>
+<span class="sourceLineNo">633</span>        }<a name="line.633"></a>
+<span class="sourceLineNo">634</span><a name="line.634"></a>
+<span class="sourceLineNo">635</span>        /**<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         * Extract blue colour channel<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         * @param clazz<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         * @return a dataset of given class<a name="line.638"></a>
+<span class="sourceLineNo">639</span>         * @since 2.1<a name="line.639"></a>
+<span class="sourceLineNo">640</span>         */<a name="line.640"></a>
+<span class="sourceLineNo">641</span>        public &lt;T extends Dataset&gt; T createBlueDataset(final T clazz) {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                return createColourChannelDataset(2, clazz, "blue");<a name="line.642"></a>
+<span class="sourceLineNo">643</span>        }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>        /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>         * Extract red colour channel<a name="line.646"></a>
+<span class="sourceLineNo">647</span>         * @param dtype<a name="line.647"></a>
+<span class="sourceLineNo">648</span>         * @return a dataset of given type<a name="line.648"></a>
+<span class="sourceLineNo">649</span>         * @deprecated Use {@link RGBDataset#createRedDataset(Class)}<a name="line.649"></a>
+<span class="sourceLineNo">650</span>         */<a name="line.650"></a>
+<span class="sourceLineNo">651</span>        @Deprecated<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        public Dataset createRedDataset(final int dtype) {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                return createColourChannelDataset(0, dtype, "red");<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>         * Extract green colour channel<a name="line.657"></a>
+<span class="sourceLineNo">658</span>         * @param dtype<a name="line.658"></a>
+<span class="sourceLineNo">659</span>         * @return a dataset of given type<a name="line.659"></a>
+<span class="sourceLineNo">660</span>         * @deprecated Use {@link RGBDataset#createGreenDataset(Class)}<a name="line.660"></a>
+<span class="sourceLineNo">661</span>         */<a name="line.661"></a>
+<span class="sourceLineNo">662</span>        @Deprecated<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        public Dataset createGreenDataset(final int dtype) {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                return createColourChannelDataset(1, dtype, "green");<a name="line.664"></a>
+<span class="sourceLineNo">665</span>        }<a name="line.665"></a>
+<span class="sourceLineNo">666</span><a name="line.666"></a>
+<span class="sourceLineNo">667</span>        /**<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         * Extract blue colour channel<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         * @param dtype<a name="line.669"></a>
+<span class="sourceLineNo">670</span>         * @return a dataset of given type<a name="line.670"></a>
+<span class="sourceLineNo">671</span>         * @deprecated Use {@link RGBDataset#createBlueDataset(Class)}<a name="line.671"></a>
+<span class="sourceLineNo">672</span>         */<a name="line.672"></a>
+<span class="sourceLineNo">673</span>        @Deprecated<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        public Dataset createBlueDataset(final int dtype) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                return createColourChannelDataset(2, dtype, "blue");<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        @SuppressWarnings("unchecked")<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        private &lt;T extends Dataset&gt; T createColourChannelDataset(int channelOffset, T clazz, String cName) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                return (T) createColourChannelDataset(channelOffset, DTypeUtils.getDType(clazz), cName);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>        }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span><a name="line.683"></a>
+<span class="sourceLineNo">684</span>        @Deprecated<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        private Dataset createColourChannelDataset(final int channelOffset, final int dtype, final String cName) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                final Dataset channel = DatasetFactory.zeros(shape, dtype);<a name="line.686"></a>
+<span class="sourceLineNo">687</span><a name="line.687"></a>
+<span class="sourceLineNo">688</span>                final StringBuilder cname = name == null ? new StringBuilder() : new StringBuilder(name);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                if (cname.length() &gt; 0) {<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        cname.append('.');<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                cname.append(cName);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                channel.setName(cname.toString());<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>                final IndexIterator it = getIterator();<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>                int i = 0;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                while (it.hasNext()) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                        channel.setObjectAbs(i++, data[it.index + channelOffset]);<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>                return channel;<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        }<a name="line.703"></a>
+<span class="sourceLineNo">704</span><a name="line.704"></a>
+<span class="sourceLineNo">705</span>        /**<a name="line.705"></a>
+<span class="sourceLineNo">706</span>         * @return red view<a name="line.706"></a>
+<span class="sourceLineNo">707</span>         */<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        public ShortDataset getRedView() {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                return getColourChannelView(0, "red");<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
+<span class="sourceLineNo">711</span><a name="line.711"></a>
+<span class="sourceLineNo">712</span>        /**<a name="line.712"></a>
+<span class="sourceLineNo">713</span>         * @return green view<a name="line.713"></a>
+<span class="sourceLineNo">714</span>         */<a name="line.714"></a>
+<span class="sourceLineNo">715</span>        public ShortDataset getGreenView() {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                return getColourChannelView(1, "green");<a name="line.716"></a>
+<span class="sourceLineNo">717</span>        }<a name="line.717"></a>
+<span class="sourceLineNo">718</span><a name="line.718"></a>
+<span class="sourceLineNo">719</span>        /**<a name="line.719"></a>
+<span class="sourceLineNo">720</span>         * @return blue view<a name="line.720"></a>
+<span class="sourceLineNo">721</span>         */<a name="line.721"></a>
+<span class="sourceLineNo">722</span>        public ShortDataset getBlueView() {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                return getColourChannelView(2, "blue");<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        }<a name="line.724"></a>
+<span class="sourceLineNo">725</span><a name="line.725"></a>
+<span class="sourceLineNo">726</span>        private ShortDataset getColourChannelView(final int channelOffset, final String cName) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                ShortDataset view = getElements(channelOffset);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                view.setName(cName);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                return view;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>        }<a name="line.730"></a>
+<span class="sourceLineNo">731</span><a name="line.731"></a>
+<span class="sourceLineNo">732</span>        @Override<a name="line.732"></a>
+<span class="sourceLineNo">733</span>        public Number max(boolean... ignored) {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>                short max = Short.MIN_VALUE;<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                final IndexIterator it = getIterator();<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                while (it.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        for (int i = 0; i &lt; ISIZE; i++) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                final short value = data[it.index + i];<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                                if (value &gt; max)<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                                        max = value;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        }<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                }<a name="line.743"></a>
+<span class="sourceLineNo">744</span>                return max;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>        }<a name="line.745"></a>
+<span class="sourceLineNo">746</span><a name="line.746"></a>
+<span class="sourceLineNo">747</span>        @Override<a name="line.747"></a>
+<span class="sourceLineNo">748</span>        public Number min(boolean... ignored) {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                short max = Short.MAX_VALUE;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>                final IndexIterator it = getIterator();<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>                while (it.hasNext()) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                        for (int i = 0; i &lt; ISIZE; i++) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                                final short value = data[it.index + i];<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                                if (value &lt; max)<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                                        max = value;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                }<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                return max;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>}<a name="line.761"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Random.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Random.html
new file mode 100644
index 0000000..abaabd4
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Random.html
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.io.IOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.commons.math3.random.MersenneTwister;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.math3.random.RandomDataGenerator;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.math3.random.RandomGenerator;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.eclipse.january.IMonitor;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.io.ILazyLoader;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Class to hold methods to create random datasets<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * <a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Emulates numpy.random<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class Random {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private final static RandomGenerator generator = new MersenneTwister();<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private final static RandomDataGenerator prng = new RandomDataGenerator(generator);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param seed<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public static void seed(final int seed) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                generator.setSeed(seed);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        /**<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param seed<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        public static void seed(final int[] seed) {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                generator.setSeed(seed);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param seed<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public static void seed(final long seed) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                generator.setSeed(seed);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param shape<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @return an array of values sampled from a uniform distribution between 0 (inclusive) and 1 (exclusive) <a name="line.56"></a>
+<span class="sourceLineNo">057</span>         */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public static DoubleDataset rand(final int... shape) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                DoubleDataset data = DatasetFactory.zeros(DoubleDataset.class, shape);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                double[] buf = data.getData();<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>                for (int i = 0; i &lt; buf.length; i++) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        buf[i] = generator.nextDouble();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                return data;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param low<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param high<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param shape<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @return an array of values sampled from a uniform distribution between low and high (both exclusive) <a name="line.73"></a>
+<span class="sourceLineNo">074</span>         */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        public static DoubleDataset rand(double low, double high, final int... shape) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                DoubleDataset data = DatasetFactory.zeros(DoubleDataset.class, shape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                double[] buf = data.getData();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                for (int i = 0; i &lt; buf.length; i++) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        buf[i] = prng.nextUniform(low, high);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                return data;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>        /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @return an array of values sampled from a Gaussian distribution with mean 0 and variance 1 <a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * <a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * (The term Gaussian here is a description of a shape of data taken from the mathematician of the<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * same name Carl Friedrich Gauss  http://en.wikipedia.org/wiki/Carl_Friedrich_Gauss born in 1777.)<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         */<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        public static DoubleDataset randn(final int... shape) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                DoubleDataset data = DatasetFactory.zeros(DoubleDataset.class, shape);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                double[] buf = data.getData();<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>                for (int i = 0; i &lt; buf.length; i++) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        buf[i] = generator.nextGaussian();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return data;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param mean<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * @param std standard deviation<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * @param shape<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @return an array of values sampled from a Gaussian distribution with given mean and standard deviation <a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public static DoubleDataset randn(double mean, double std, final int... shape) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                DoubleDataset data = DatasetFactory.zeros(DoubleDataset.class, shape);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                double[] buf = data.getData();<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                for (int i = 0; i &lt; buf.length; i++) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        buf[i] = prng.nextGaussian(mean, std);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>                return data;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @param low <a name="line.122"></a>
+<span class="sourceLineNo">123</span>         * @param high<a name="line.123"></a>
+<span class="sourceLineNo">124</span>         * @param shape<a name="line.124"></a>
+<span class="sourceLineNo">125</span>         * @return an array of values sampled from a discrete uniform distribution in range [low, high)<a name="line.125"></a>
+<span class="sourceLineNo">126</span>         */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        public static IntegerDataset randint(final int low, final int high, final int[] shape) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                return random_integers(low, high-1, shape);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>        /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param low <a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param high <a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param shape<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @return an array of values sampled from a discrete uniform distribution in range [low, high]<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        public static IntegerDataset random_integers(final int low, final int high, final int[] shape) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                IntegerDataset data = DatasetFactory.zeros(IntegerDataset.class, shape);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                int[] buf = data.getData();<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>                if (low == high) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        for (int i = 0; i &lt; buf.length; i++) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                buf[i] = low;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        }                       <a name="line.144"></a>
+<span class="sourceLineNo">145</span>                } else {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        for (int i = 0; i &lt; buf.length; i++) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                buf[i] = prng.nextInt(low, high);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>                return data;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>        /**<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @param beta <a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @param shape<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @return an array of values sampled from an exponential distribution with mean beta<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         */<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        public static DoubleDataset exponential(final double beta, final int... shape) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                DoubleDataset data = DatasetFactory.zeros(DoubleDataset.class, shape);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                double[] buf = data.getData();<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                for (int i = 0; i &lt; buf.length; i++) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        buf[i] = prng.nextExponential(beta);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>                return data;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>        /**<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         * @param lam <a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @param shape<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @return an array of values sampled from an exponential distribution with mean lambda<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        public static IntegerDataset poisson(final double lam, final int... shape) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                IntegerDataset data = DatasetFactory.zeros(IntegerDataset.class, shape);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                int[] buf = data.getData();<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>                for (int i = 0; i &lt; buf.length; i++) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                        buf[i] = (int) prng.nextPoisson(lam);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return data;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         * @param shape<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         * @return a lazy dataset with uniformly distributed random numbers<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        public static ILazyDataset lazyRand(int... shape) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                return lazyRand(Dataset.FLOAT64, "random", shape);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>        /**<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @param name<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         * @param shape<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @return a lazy dataset with uniformly distributed random numbers<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         */<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        public static ILazyDataset lazyRand(String name, int... shape) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                return lazyRand(Dataset.FLOAT64, name, shape);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>        /**<a name="line.203"></a>
+<span class="sourceLineNo">204</span>         * @param dtype<a name="line.204"></a>
+<span class="sourceLineNo">205</span>         * @param name<a name="line.205"></a>
+<span class="sourceLineNo">206</span>         * @param shape<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * @return a lazy dataset with uniformly distributed random numbers<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        public static ILazyDataset lazyRand(int dtype, String name, int... shape) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                <a name="line.210"></a>
+<span class="sourceLineNo">211</span>                return new LazyDataset(name, dtype, shape, new ILazyLoader() {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                        private static final long serialVersionUID = ILazyLoader.serialVersionUID;<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        @Override<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        public boolean isFileReadable() {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                return true;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        @Override<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                        public IDataset getDataset(IMonitor mon, SliceND slice) throws IOException {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                return rand(slice.getShape());<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                });<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>}<a name="line.225"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/RunningAverage.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/RunningAverage.html
new file mode 100644
index 0000000..19e5d35
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/RunningAverage.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import org.eclipse.january.DatasetException;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * A running mean class<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>public class RunningAverage {<a name="line.17"></a>
+<span class="sourceLineNo">018</span>        <a name="line.18"></a>
+<span class="sourceLineNo">019</span>        private DoubleDataset average;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        private DoubleDataset sqAveError;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private int count = 1;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param dataset<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public RunningAverage(IDataset dataset) {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                average = (DoubleDataset) (dataset.getElementClass().equals(Double.class) ? DatasetUtils.convertToDataset(dataset).clone()<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                                : DatasetUtils.cast(dataset, Dataset.FLOAT64));<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>                sqAveError = null;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                Dataset eb = average.getErrorBuffer();<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                if (eb != null) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                        sqAveError = eb.getDType() != Dataset.FLOAT64 ? (DoubleDataset) DatasetUtils.cast(eb, Dataset.FLOAT64) :<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                                (DoubleDataset) eb;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        }<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * Update average<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param dataset<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public void update(IDataset dataset) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                count++;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                IndexIterator it = average.getIterator(true);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                int[] pos = it.getPos();<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                double f = 1. / count;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                if (sqAveError == null) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        while (it.hasNext()) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                double m = average.getAbs(it.index);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                double v = f * (dataset.getDouble(pos) - m);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                                average.setAbs(it.index, m + v);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                } else {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                        double fs = f * f;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                        double gs = 2 * count - 1;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                        if (dataset instanceof Dataset) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                                final Dataset d = (Dataset) dataset;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                                final Dataset e = d.getErrorBuffer();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                                while (it.hasNext()) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                                        double m = average.getAbs(it.index);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                                        double v = f * (d.getDouble(pos) - m);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                                        average.setAbs(it.index, m + v);<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>                                        if (e != null) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                                m = sqAveError.getDouble(pos);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                                                v = fs * (e.getDouble(pos) - gs * m);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                                sqAveError.setItem(m + v, pos);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                                        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        } else { // only linear error available<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                ILazyDataset le = dataset.getErrors();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                                IDataset e = null;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                if (le instanceof IDataset) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                        e = (IDataset) le;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                } else if (le != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                        try {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                                e = le.getSlice();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        } catch (DatasetException e1) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                while (it.hasNext()) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                        double m = average.getAbs(it.index);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                        double v = f * (dataset.getDouble(pos) - m);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                                        average.setAbs(it.index, m + v);<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>                                        if (e != null) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                                m = sqAveError.getDouble(pos);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                                v = e.getDouble(pos);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                                v = fs * (v * v - gs * m);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                                sqAveError.setItem(m + v, pos);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                                        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>        /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @return count<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        public int getCount() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                return count;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>        /**<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @return current average<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         */<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public Dataset getCurrentAverage() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                if (sqAveError != null) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        Dataset e = sqAveError.clone();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        DatasetUtils.makeFinite(e);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        average.setErrorBuffer(e);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                return average;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>}<a name="line.116"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html
new file mode 100644
index 0000000..a1696a5
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShapeChangeChecker.html
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * Checks whether shape has changed between waits. Useful for where datasets are being extended.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Note, {@link LazyDynamicDataset} already alerts its listeners when its shape is resized<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class ShapeChangeChecker implements IDatasetChangeChecker {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        <a name="line.19"></a>
+<span class="sourceLineNo">020</span>        private ILazyDataset lazy;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private int[] shape;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        @Override<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        public void setDataset(ILazyDataset dataset) {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                if (dataset == null) {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                        throw new IllegalArgumentException("Dataset must not be null");<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                }<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                lazy = dataset;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                shape = lazy.getShape();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        @Override<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        public boolean check() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>                int[] cshape = lazy.getShape();<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                if (Arrays.equals(shape, cshape)) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                        return false;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                }<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                shape = cshape;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                return true;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        }<a name="line.40"></a>
+<span class="sourceLineNo">041</span>}<a name="line.41"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShapeUtils.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShapeUtils.html
new file mode 100644
index 0000000..3c52796
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShapeUtils.html
@@ -0,0 +1,480 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*******************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright (c) 2016 Diamond Light Source Ltd. and others.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * All rights reserved. This program and the accompanying materials<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * which accompanies this distribution, and is available at<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.6"></a>
+<span class="sourceLineNo">007</span> *<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * Contributors:<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *     Diamond Light Source Ltd - initial API and implementation<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *******************************************************************************/<a name="line.10"></a>
+<span class="sourceLineNo">011</span>package org.eclipse.january.dataset;<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.lang.reflect.Array;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.ArrayList;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.List;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>public class ShapeUtils {<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>        private ShapeUtils() {<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        }<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Calculate total number of items in given shape<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param shape<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @return size<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public static long calcLongSize(final int[] shape) {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                if (shape == null) { // special case of null-shaped<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                        return 0;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>                final int rank = shape.length;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                if (rank == 0) { // special case of zero-rank shape <a name="line.33"></a>
+<span class="sourceLineNo">034</span>                        return 1;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                }<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>                double dsize = 1.0;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                        // make sure the indexes isn't zero or negative<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        if (shape[i] == 0) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                                return 0;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                        } else if (shape[i] &lt; 0) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                                throw new IllegalArgumentException(String.format(<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                                                "The %d-th is %d which is not allowed as it is negative", i, shape[i]));<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        }<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        <a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        dsize *= shape[i];<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                }<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        <a name="line.49"></a>
+<span class="sourceLineNo">050</span>                // check to see if the size is larger than an integer, i.e. we can't allocate it<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                if (dsize &gt; Long.MAX_VALUE) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                        throw new IllegalArgumentException("Size of the dataset is too large to allocate");<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                }<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                return (long) dsize;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>        /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * Calculate total number of items in given shape<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param shape<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @return size<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        public static int calcSize(final int[] shape) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                long lsize = calcLongSize(shape);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        <a name="line.64"></a>
+<span class="sourceLineNo">065</span>                // check to see if the size is larger than an integer, i.e. we can't allocate it<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                if (lsize &gt; Integer.MAX_VALUE) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        throw new IllegalArgumentException("Size of the dataset is too large to allocate");<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                return (int) lsize;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>        /**<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * Check if shapes are broadcast compatible<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * <a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * @param ashape<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * @param bshape<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @return true if they are compatible<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public static boolean areShapesBroadcastCompatible(final int[] ashape, final int[] bshape) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                if (ashape == null || bshape == null) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        return ashape == bshape;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>                if (ashape.length &lt; bshape.length) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        return areShapesBroadcastCompatible(bshape, ashape);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        <a name="line.87"></a>
+<span class="sourceLineNo">088</span>                for (int a = ashape.length - bshape.length, b = 0; a &lt; ashape.length &amp;&amp; b &lt; bshape.length; a++, b++) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        if (ashape[a] != bshape[b] &amp;&amp; ashape[a] != 1 &amp;&amp; bshape[b] != 1) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                                return false;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        <a name="line.93"></a>
+<span class="sourceLineNo">094</span>                return true;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>        /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * Check if shapes are compatible, ignoring extra axes of length 1<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * <a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param ashape<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param bshape<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @return true if they are compatible<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         */<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        public static boolean areShapesCompatible(final int[] ashape, final int[] bshape) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                if (ashape == null || bshape == null) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        return ashape == bshape;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>                List&lt;Integer&gt; alist = new ArrayList&lt;Integer&gt;();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        <a name="line.110"></a>
+<span class="sourceLineNo">111</span>                for (int a : ashape) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        if (a &gt; 1) alist.add(a);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        <a name="line.114"></a>
+<span class="sourceLineNo">115</span>                final int imax = alist.size();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                int i = 0;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                for (int b : bshape) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        if (b == 1)<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                continue;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        if (i &gt;= imax || b != alist.get(i++))<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                return false;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        <a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return i == imax;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * Check if shapes are compatible but skip axis<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * <a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @param ashape<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * @param bshape<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param axis<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @return true if they are compatible<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         */<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        public static boolean areShapesCompatible(final int[] ashape, final int[] bshape, final int axis) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                if (ashape == null || bshape == null) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        return ashape == bshape;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>                if (ashape.length != bshape.length) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        return false;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        <a name="line.143"></a>
+<span class="sourceLineNo">144</span>                final int rank = ashape.length;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        if (i != axis &amp;&amp; ashape[i] != bshape[i]) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                return false;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                return true;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * Remove dimensions of 1 in given shape - from both ends only, if true<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * <a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * @param oshape<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * @param onlyFromEnds<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * @return newly squeezed shape (or original if unsqueezed)<a name="line.158"></a>
+<span class="sourceLineNo">159</span>         */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        public static int[] squeezeShape(final int[] oshape, boolean onlyFromEnds) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                int unitDims = 0;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                int rank = oshape.length;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                int start = 0;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        <a name="line.164"></a>
+<span class="sourceLineNo">165</span>                if (onlyFromEnds) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        int i = rank - 1;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        for (; i &gt;= 0; i--) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                                if (oshape[i] == 1) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                                        unitDims++;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                } else {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                                        break;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        for (int j = 0; j &lt;= i; j++) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                                if (oshape[j] == 1) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                                        unitDims++;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                                } else {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                                        start = j;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                        break;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                                }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                } else {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                if (oshape[i] == 1) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                                        unitDims++;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                }<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        <a name="line.189"></a>
+<span class="sourceLineNo">190</span>                if (unitDims == 0) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                        return oshape;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        <a name="line.193"></a>
+<span class="sourceLineNo">194</span>                int[] newDims = new int[rank - unitDims];<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                if (unitDims == rank)<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        return newDims; // zero-rank dataset<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        <a name="line.197"></a>
+<span class="sourceLineNo">198</span>                if (onlyFromEnds) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        rank = newDims.length;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                                newDims[i] = oshape[i+start];<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                } else {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        int j = 0;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                if (oshape[i] &gt; 1) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                        newDims[j++] = oshape[i];<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                                        if (j &gt;= newDims.length)<a name="line.208"></a>
+<span class="sourceLineNo">209</span>                                                break;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                                }<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        <a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return newDims;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * Remove dimension of 1 in given shape<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * <a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @param oshape<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         * @param axis<a name="line.221"></a>
+<span class="sourceLineNo">222</span>         * @return newly squeezed shape<a name="line.222"></a>
+<span class="sourceLineNo">223</span>         */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        public static int[] squeezeShape(final int[] oshape, int axis) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                if (oshape == null) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        return null;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>                final int rank = oshape.length;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                if (rank == 0) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                        return new int[0];<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                if (axis &lt; 0) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                        axis += rank;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        throw new IllegalArgumentException("Axis argument is outside allowed range");<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                int[] nshape = new int[rank-1];<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                for (int i = 0; i &lt; axis; i++) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                        nshape[i] = oshape[i];<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                for (int i = axis+1; i &lt; rank; i++) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        nshape[i-1] = oshape[i];<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                return nshape;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>        /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>         * Get shape from object (array or list supported)<a name="line.250"></a>
+<span class="sourceLineNo">251</span>         * @param obj<a name="line.251"></a>
+<span class="sourceLineNo">252</span>         * @return shape can be null if obj is null<a name="line.252"></a>
+<span class="sourceLineNo">253</span>         */<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        public static int[] getShapeFromObject(final Object obj) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                if (obj == null) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        return null;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                ArrayList&lt;Integer&gt; lshape = new ArrayList&lt;Integer&gt;();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                getShapeFromObj(lshape, obj, 0);<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>                final int rank = lshape.size();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                final int[] shape = new int[rank];<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        shape[i] = lshape.get(i);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        <a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return shape;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        /**<a name="line.271"></a>
+<span class="sourceLineNo">272</span>         * Get shape from object<a name="line.272"></a>
+<span class="sourceLineNo">273</span>         * @param ldims<a name="line.273"></a>
+<span class="sourceLineNo">274</span>         * @param obj<a name="line.274"></a>
+<span class="sourceLineNo">275</span>         * @param depth<a name="line.275"></a>
+<span class="sourceLineNo">276</span>         * @return true if there is a possibility of differing lengths<a name="line.276"></a>
+<span class="sourceLineNo">277</span>         */<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        private static boolean getShapeFromObj(final ArrayList&lt;Integer&gt; ldims, Object obj, int depth) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                if (obj == null)<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        return true;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        <a name="line.281"></a>
+<span class="sourceLineNo">282</span>                if (obj instanceof List&lt;?&gt;) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                        List&lt;?&gt; jl = (List&lt;?&gt;) obj;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        int l = jl.size();<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                        updateShape(ldims, depth, l);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                Object lo = jl.get(i);<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                if (!getShapeFromObj(ldims, lo, depth + 1)) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                        break;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                                }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                        }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        return true;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                }<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                Class&lt;? extends Object&gt; ca = obj.getClass().getComponentType();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                if (ca != null) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        final int l = Array.getLength(obj);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        updateShape(ldims, depth, l);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                        if (DTypeUtils.isClassSupportedAsElement(ca)) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                return true;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        for (int i = 0; i &lt; l; i++) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                Object lo = Array.get(obj, i);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                if (!getShapeFromObj(ldims, lo, depth + 1)) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                                        break;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                        return true;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                } else if (obj instanceof IDataset) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        int[] s = ((IDataset) obj).getShape();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                        for (int i = 0; i &lt; s.length; i++) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                                updateShape(ldims, depth++, s[i]);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                        }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        return true;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                } else {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        return false; // not an array of any type<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>        private static void updateShape(final ArrayList&lt;Integer&gt; ldims, final int depth, final int l) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                if (depth &gt;= ldims.size()) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        ldims.add(l);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                } else if (l &gt; ldims.get(depth)) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        ldims.set(depth, l);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * Get n-D position from given index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param n index<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         * @param shape<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @return n-D position<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         */<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        public static int[] getNDPositionFromShape(int n, int[] shape) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                if (shape == null) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                        return null;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>                int rank = shape.length;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                if (rank == 0) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        return new int[0];<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>                if (rank == 1) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                        return new int[] { n };<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                int[] output = new int[rank];<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                for (rank--; rank &gt; 0; rank--) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        output[rank] = n % shape[rank];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                        n /= shape[rank];<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                output[0] = n;<a name="line.352"></a>
+<span class="sourceLineNo">353</span>        <a name="line.353"></a>
+<span class="sourceLineNo">354</span>                return output;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>        /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         * Get flattened view index of given position <a name="line.358"></a>
+<span class="sourceLineNo">359</span>         * @param shape<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         * @param pos<a name="line.360"></a>
+<span class="sourceLineNo">361</span>         *            the integer array specifying the n-D position<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @return the index on the flattened dataset<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         */<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        public static int getFlat1DIndex(final int[] shape, final int[] pos) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                final int imax = pos.length;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                if (imax == 0) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        return 0;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        <a name="line.369"></a>
+<span class="sourceLineNo">370</span>                return AbstractDataset.get1DIndexFromShape(shape, pos);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>        /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span>         * This function takes a dataset and checks its shape against another dataset. If they are both of the same size,<a name="line.374"></a>
+<span class="sourceLineNo">375</span>         * then this returns with no error, if there is a problem, then an error is thrown.<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * <a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * @param g<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         *            The first dataset to be compared<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param h<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         *            The second dataset to be compared<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         * @throws IllegalArgumentException<a name="line.381"></a>
+<span class="sourceLineNo">382</span>         *             This will be thrown if there is a problem with the compatibility<a name="line.382"></a>
+<span class="sourceLineNo">383</span>         */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        public static void checkCompatibility(final ILazyDataset g, final ILazyDataset h) throws IllegalArgumentException {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                if (!areShapesCompatible(g.getShape(), h.getShape())) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                        throw new IllegalArgumentException("Shapes do not match");<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        /**<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * Check that axis is in range [-rank,rank)<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * <a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * @param rank<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @param axis<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @return sanitized axis in range [0, rank)<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @since 2.1<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public static int checkAxis(int rank, int axis) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                if (axis &lt; 0) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                        axis += rank;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        <a name="line.402"></a>
+<span class="sourceLineNo">403</span>                if (axis &lt; 0 || axis &gt;= rank) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        throw new IllegalArgumentException("Axis " + axis + " given is out of range [0, " + rank + ")");<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                return axis;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        }<a name="line.407"></a>
+<span class="sourceLineNo">408</span>}<a name="line.408"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShortDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShortDataset.html
new file mode 100644
index 0000000..e29c177
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/ShortDataset.html
@@ -0,0 +1,1338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Extend dataset for short values // PRIM_TYPE<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public class ShortDataset extends AbstractDataset {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        // pin UID to base class<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        protected short[] data; // subclass alias // PRIM_TYPE<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        protected void setData() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                data = (short[]) odata; // PRIM_TYPE<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        protected static short[] createArray(final int size) { // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                short[] array = null; // PRIM_TYPE<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>                try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                        array = new short[size]; // PRIM_TYPE<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                } catch (OutOfMemoryError e) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return array;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public int getDType() {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                return INT16; // DATA_TYPE<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Create a null dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        ShortDataset() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Create a zero-filled dataset of given shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param shape<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        ShortDataset(final int... shape) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                if (shape != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        size = ShapeUtils.calcSize(shape);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        this.shape = shape.clone();<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        try {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                odata = data = createArray(size);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        } catch (Throwable t) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                throw new IllegalArgumentException(t);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Create a dataset using given data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param data<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * @param shape<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         *            (can be null to create 1D dataset)<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        ShortDataset(final short[] data, int... shape) { // PRIM_TYPE<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                if (data == null) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                if (shape == null || shape.length == 0) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        shape = new int[] { data.length };<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                size = ShapeUtils.calcSize(shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (size != data.length) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                        Arrays.toString(shape), data.length));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>                odata = this.data = data;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>        /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * Copy a dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param dataset<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         */<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        ShortDataset(final ShortDataset dataset) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                copyToView(dataset, this, true, true);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>                try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        if (dataset.stride == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                if (dataset.data != null) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                        odata = data = dataset.data.clone();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        } else {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                offset = 0;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                stride = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                base = null;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                odata = data = createArray(size);<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                IndexIterator iter = dataset.getIterator();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                        data[i] = dataset.data[iter.index];<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                                }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                } catch (Throwable t) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        throw new IllegalArgumentException(t);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * Copy and cast a dataset to this class type<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * @param dataset<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         */<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        ShortDataset(final Dataset dataset) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                copyToView(dataset, this, true, false);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                offset = 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                stride = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                base = null;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        odata = data = createArray(size);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                } catch (Throwable t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException(t);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                IndexIterator iter = dataset.getIterator();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                        data[i] = (short) dataset.getElementLongAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>        @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        public boolean equals(Object obj) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (!super.equals(obj)) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        return false;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>                ShortDataset other = (ShortDataset) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//              if (size == 1) // for zero-rank datasets<a name="line.167"></a>
+<span class="sourceLineNo">168</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator iter = getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                IndexIterator oiter = other.getIterator();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        if (data[iter.index] != other.data[oiter.index]) // OBJECT_UNEQUAL<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                                return false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                return true;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        }<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>        @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        public int hashCode() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                return super.hashCode();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>        @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        public ShortDataset clone() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                return new ShortDataset(this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * sequences or arrays are padded with zeros.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         *<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param obj<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         * @return dataset with contents given by input<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        static ShortDataset createFromObject(final Object obj) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                ShortDataset result = new ShortDataset();<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>                if (obj != null) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                result.odata = result.data = createArray(result.size);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                        } catch (Throwable t) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                                throw new IllegalArgumentException(t);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        int[] pos = new int[result.shape.length];<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                        result.fillData(obj, 0, pos);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>                return result;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        <a name="line.216"></a>
+<span class="sourceLineNo">217</span>        /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         *<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         * @param stop<a name="line.219"></a>
+<span class="sourceLineNo">220</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.220"></a>
+<span class="sourceLineNo">221</span>         */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        static ShortDataset createRange(final double stop) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                return createRange(0, stop, 1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        <a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param start<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * @param stop<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param step<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         * @return a new 1D dataset, filled with values determined by parameters<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        static ShortDataset createRange(final double start, final double stop, final double step) {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                int size = calcSteps(start, stop, step);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                ShortDataset result = new ShortDataset(size);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                for (int i = 0; i &lt; size; i++) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        result.data[i] = (short) (start + i * step); // PRIM_TYPE // ADD_CAST<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                return result;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>        /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         * @param shape<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @return a dataset filled with ones<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        static ShortDataset ones(final int... shape) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                return new ShortDataset(shape).fill(1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>        @Override<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        public ShortDataset fill(final Object obj) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                setDirty();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                IndexIterator iter = getIterator();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                while (iter.hasNext()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        data[iter.index] = dv;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                return this;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span>        /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * This is a typed version of {@link #getBuffer()}<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         * @return data buffer as linear array<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        public short[] getData() { // PRIM_TYPE<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                return data;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>        @Override<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        protected int getBufferLength() {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (data == null)<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        return 0;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return data.length;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public ShortDataset getView(boolean deepCopyMetadata) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                ShortDataset view = new ShortDataset();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                view.setData();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                return view;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>        /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         *<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * @param index<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         *            absolute index<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @return value<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         */<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public short getAbs(final int index) { // PRIM_TYPE<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                return data[index];<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                return data[index] != 0; // BOOLEAN_FALSE<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public double getElementDoubleAbs(final int index) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                return data[index]; // BOOLEAN_ZERO<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public long getElementLongAbs(final int index) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                return data[index]; // BOOLEAN_ZERO // OMIT_TOLONG_INT<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public Object getObjectAbs(final int index) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                return data[index];<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>        @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        public String getStringAbs(final int index) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                return stringFormat == null ? String.format("%d", data[index]) : // FORMAT_STRING<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        stringFormat.format(data[index]);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>        /**<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.324"></a>
+<span class="sourceLineNo">325</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>         *<a name="line.326"></a>
+<span class="sourceLineNo">327</span>         * @param index<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         *            absolute index<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @param val<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         *            new value<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         */<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        public void setAbs(final int index, final short val) { // PRIM_TYPE<a name="line.332"></a>
+<span class="sourceLineNo">333</span>                setDirty();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                data[index] = val;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>        @Override<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                setDirty();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                short[] dsrc = (short[]) src; // PRIM_TYPE<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                data[dindex] = dsrc[sindex];<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>                setAbs(index, (short) DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>        /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in first position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         * @since 2.0<a name="line.355"></a>
+<span class="sourceLineNo">356</span>         */<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        public short get() { // PRIM_TYPE<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                return data[getFirst1DIndex()];<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>        /**<a name="line.361"></a>
+<span class="sourceLineNo">362</span>         * @param i<a name="line.362"></a>
+<span class="sourceLineNo">363</span>         * @return item in given position<a name="line.363"></a>
+<span class="sourceLineNo">364</span>         */<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        public short get(final int i) { // PRIM_TYPE<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                return data[get1DIndex(i)];<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>        /**<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         * @param i<a name="line.370"></a>
+<span class="sourceLineNo">371</span>         * @param j<a name="line.371"></a>
+<span class="sourceLineNo">372</span>         * @return item in given position<a name="line.372"></a>
+<span class="sourceLineNo">373</span>         */<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        public short get(final int i, final int j) { // PRIM_TYPE<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                return data[get1DIndex(i, j)];<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        }<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>        /**<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @param pos<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return item in given position<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        public short get(final int... pos) { // PRIM_TYPE<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                return data[get1DIndex(pos)];<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>        @Override<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        public Object getObject() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                return Short.valueOf(get()); // CLASS_TYPE<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>        @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        public Object getObject(final int i) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>                return Short.valueOf(get(i)); // CLASS_TYPE<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>        @Override<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        public Object getObject(final int i, final int j) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                return Short.valueOf(get(i, j)); // CLASS_TYPE<a name="line.398"></a>
+<span class="sourceLineNo">399</span>        }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>        @Override<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public Object getObject(final int... pos) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return Short.valueOf(get(pos)); // CLASS_TYPE<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public String getString() {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getStringAbs(getFirst1DIndex());<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        @Override<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        public String getString(final int i) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>                return getStringAbs(get1DIndex(i));<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @Override<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public String getString(final int i, final int j) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                return getStringAbs(get1DIndex(i, j));<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>        @Override<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public String getString(final int... pos) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                return getStringAbs(get1DIndex(pos));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>        @Override<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        public double getDouble() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                return get(); // BOOLEAN_ZERO<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>        @Override<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        public double getDouble(final int i) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                return get(i); // BOOLEAN_ZERO<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>        @Override<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        public double getDouble(final int i, final int j) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                return get(i, j); // BOOLEAN_ZERO<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        }<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>        @Override<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        public double getDouble(final int... pos) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>                return get(pos); // BOOLEAN_ZERO<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span>        @Override<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public float getFloat() {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                return get(); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        }<a name="line.449"></a>
+<span class="sourceLineNo">450</span><a name="line.450"></a>
+<span class="sourceLineNo">451</span>        @Override<a name="line.451"></a>
+<span class="sourceLineNo">452</span>        public float getFloat(final int i) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                return get(i); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>        @Override<a name="line.456"></a>
+<span class="sourceLineNo">457</span>        public float getFloat(final int i, final int j) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span>        @Override<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        public float getFloat(final int... pos) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                return get(pos); // BOOLEAN_ZERO // OMIT_REAL_CAST<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>        @Override<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        public long getLong() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>        @Override<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        public long getLong(final int i) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.473"></a>
+<span class="sourceLineNo">474</span>        }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>        @Override<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        public long getLong(final int i, final int j) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public long getLong(final int... pos) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.483"></a>
+<span class="sourceLineNo">484</span>        }<a name="line.484"></a>
+<span class="sourceLineNo">485</span><a name="line.485"></a>
+<span class="sourceLineNo">486</span>        @Override<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        public int getInt() {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.488"></a>
+<span class="sourceLineNo">489</span>        }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>        @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        public int getInt(final int i) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.493"></a>
+<span class="sourceLineNo">494</span>        }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>        @Override<a name="line.496"></a>
+<span class="sourceLineNo">497</span>        public int getInt(final int i, final int j) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>        @Override<a name="line.501"></a>
+<span class="sourceLineNo">502</span>        public int getInt(final int... pos) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        }<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span>        @Override<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        public short getShort() {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                return get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>        @Override<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        public short getShort(final int i) {<a name="line.512"></a>
+<span class="sourceLineNo">513</span>                return get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        }<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span>        @Override<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        public short getShort(final int i, final int j) {<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                return get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>        @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        public short getShort(final int... pos) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                return get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.523"></a>
+<span class="sourceLineNo">524</span>        }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span>        @Override<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        public byte getByte() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                return (byte) get(); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.528"></a>
+<span class="sourceLineNo">529</span>        }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>        @Override<a name="line.531"></a>
+<span class="sourceLineNo">532</span>        public byte getByte(final int i) {<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                return (byte) get(i); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.533"></a>
+<span class="sourceLineNo">534</span>        }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>        @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>        public byte getByte(final int i, final int j) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                return (byte) get(i, j); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>        @Override<a name="line.541"></a>
+<span class="sourceLineNo">542</span>        public byte getByte(final int... pos) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                return (byte) get(pos); // BOOLEAN_ZERO // OMIT_UPCAST<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        }<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>        @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        public boolean getBoolean() {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                return get() != 0; // BOOLEAN_FALSE<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>        @Override<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        public boolean getBoolean(final int i) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                return get(i) != 0; // BOOLEAN_FALSE<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>        @Override<a name="line.556"></a>
+<span class="sourceLineNo">557</span>        public boolean getBoolean(final int i, final int j) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                return get(i, j) != 0; // BOOLEAN_FALSE<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>        @Override<a name="line.561"></a>
+<span class="sourceLineNo">562</span>        public boolean getBoolean(final int... pos) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                return get(pos) != 0; // BOOLEAN_FALSE<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>        /**<a name="line.566"></a>
+<span class="sourceLineNo">567</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.567"></a>
+<span class="sourceLineNo">568</span>         *<a name="line.568"></a>
+<span class="sourceLineNo">569</span>         * @param value<a name="line.569"></a>
+<span class="sourceLineNo">570</span>         * @since 2.0<a name="line.570"></a>
+<span class="sourceLineNo">571</span>         */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>        public void setItem(final short value) { // PRIM_TYPE<a name="line.572"></a>
+<span class="sourceLineNo">573</span>                setAbs(getFirst1DIndex(), value);<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        }<a name="line.574"></a>
+<span class="sourceLineNo">575</span><a name="line.575"></a>
+<span class="sourceLineNo">576</span>        /**<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.577"></a>
+<span class="sourceLineNo">578</span>         *<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         * @param value<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @param i<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void setItem(final short value, final int i) { // PRIM_TYPE<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setAbs(get1DIndex(i), value);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.587"></a>
+<span class="sourceLineNo">588</span>         *<a name="line.588"></a>
+<span class="sourceLineNo">589</span>         * @param value<a name="line.589"></a>
+<span class="sourceLineNo">590</span>         * @param i<a name="line.590"></a>
+<span class="sourceLineNo">591</span>         * @param j<a name="line.591"></a>
+<span class="sourceLineNo">592</span>         */<a name="line.592"></a>
+<span class="sourceLineNo">593</span>        public void setItem(final short value, final int i, final int j) { // PRIM_TYPE<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                setAbs(get1DIndex(i, j), value);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>        /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>         * Sets the value at a particular point to the passed value<a name="line.598"></a>
+<span class="sourceLineNo">599</span>         *<a name="line.599"></a>
+<span class="sourceLineNo">600</span>         * @param value<a name="line.600"></a>
+<span class="sourceLineNo">601</span>         * @param pos<a name="line.601"></a>
+<span class="sourceLineNo">602</span>         */<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        public void setItem(final short value, final int... pos) { // PRIM_TYPE<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                setAbs(get1DIndex(pos), value);<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>        @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>        public void set(final Object obj) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                setItem((short) DTypeUtils.toLong(obj)); // FROM_OBJECT<a name="line.609"></a>
+<span class="sourceLineNo">610</span>        }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>        @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        public void set(final Object obj, final int i) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                setItem((short) DTypeUtils.toLong(obj), i); // FROM_OBJECT<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        }<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>        @Override<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        public void set(final Object obj, final int i, final int j) {<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                setItem((short) DTypeUtils.toLong(obj), i, j); // FROM_OBJECT<a name="line.619"></a>
+<span class="sourceLineNo">620</span>        }<a name="line.620"></a>
+<span class="sourceLineNo">621</span><a name="line.621"></a>
+<span class="sourceLineNo">622</span>        @Override<a name="line.622"></a>
+<span class="sourceLineNo">623</span>        public void set(final Object obj, int... pos) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                        pos = new int[shape.length];<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                setItem((short) DTypeUtils.toLong(obj), pos); // FROM_OBJECT<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        public void resize(int... newShape) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                setDirty();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                final IndexIterator iter = getIterator();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                final short[] ndata; // PRIM_TYPE<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                try {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        ndata = createArray(nsize);<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } catch (Throwable t) {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        throw new IllegalArgumentException(t);<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        ndata[i] = data[iter.index];<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                }<a name="line.645"></a>
+<span class="sourceLineNo">646</span><a name="line.646"></a>
+<span class="sourceLineNo">647</span>                odata = data = ndata;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                size = nsize;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                shape = newShape;<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                stride = null;<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                offset = 0;<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                base = null;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
+<span class="sourceLineNo">654</span><a name="line.654"></a>
+<span class="sourceLineNo">655</span>        @Override<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        public ShortDataset sort(Integer axis) {<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                setDirty();<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                if (axis == null) {<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                        if (stride == null) {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                Arrays.sort(data);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        } else {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                ShortDataset ads = clone().sort(null);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                setSlicedView(getView(false), ads);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                        }<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                } else {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                        axis = checkAxis(axis);<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                        <a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        ShortDataset ads = new ShortDataset(shape[axis]);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        int[] pos = pi.getPos();<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                        boolean[] hit = pi.getOmit();<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        while (pi.hasNext()) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                Arrays.sort(ads.data);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        }<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                return this;<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.679"></a>
+<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
+<span class="sourceLineNo">681</span><a name="line.681"></a>
+<span class="sourceLineNo">682</span>        @Override<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        public ShortDataset getUniqueItems() {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                Set&lt;Short&gt; set = new TreeSet&lt;Short&gt;(); // CLASS_TYPE<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                IndexIterator it = getIterator();<a name="line.685"></a>
+<span class="sourceLineNo">686</span>                while (it.hasNext()) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                        set.add(data[it.index]);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                }<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                ShortDataset u = new ShortDataset(set.size()); // CLASS_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                short[] udata = u.getData(); // PRIM_TYPE<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                for (Short v : set) { // CLASS_TYPE<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                        udata[i++] = v;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                return u;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span><a name="line.698"></a>
+<span class="sourceLineNo">699</span>        @Override<a name="line.699"></a>
+<span class="sourceLineNo">700</span>        public ShortDataset getSlice(final SliceIterator siter) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                ShortDataset result = new ShortDataset(siter.getShape());<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                short[] rdata = result.data; // PRIM_TYPE<a name="line.702"></a>
+<span class="sourceLineNo">703</span><a name="line.703"></a>
+<span class="sourceLineNo">704</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                        rdata[i] = data[siter.index];<a name="line.705"></a>
+<span class="sourceLineNo">706</span><a name="line.706"></a>
+<span class="sourceLineNo">707</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                return result;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>        @Override<a name="line.711"></a>
+<span class="sourceLineNo">712</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                IndexIterator riter = result.getIterator();<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                result.setDirty();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>                short[] rdata = ((ShortDataset) result).data; // PRIM_TYPE<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                        rdata[riter.index] = data[iter.index];<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>        @Override<a name="line.723"></a>
+<span class="sourceLineNo">724</span>        public ShortDataset setByBoolean(final Object obj, Dataset selection) {<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                setDirty();<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                if (obj instanceof Dataset) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                        final Dataset ds = (Dataset) obj;<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        if (length != ds.getSize()) {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                throw new IllegalArgumentException(<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.735"></a>
+<span class="sourceLineNo">736</span><a name="line.736"></a>
+<span class="sourceLineNo">737</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>                                data[biter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                        }<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                } else {<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>                        while (biter.hasNext()) {<a name="line.744"></a>
+<span class="sourceLineNo">745</span>                                data[biter.index] = dv;<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                        }<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                return this;<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        }<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        @Override<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        public ShortDataset setBy1DIndex(final Object obj, final Dataset index) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span>                setDirty();<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                if (obj instanceof Dataset) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                        final Dataset ds = (Dataset) obj;<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                        if (index.getSize() != ds.getSize()) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                                throw new IllegalArgumentException(<a name="line.757"></a>
+<span class="sourceLineNo">758</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                                data[iter.index] = (short) ds.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                        }<a name="line.766"></a>
+<span class="sourceLineNo">767</span>                } else {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        while (iter.hasNext()) {<a name="line.771"></a>
+<span class="sourceLineNo">772</span>                                data[iter.index] = dv;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        }<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                }<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                return this;<a name="line.775"></a>
+<span class="sourceLineNo">776</span>        }<a name="line.776"></a>
+<span class="sourceLineNo">777</span><a name="line.777"></a>
+<span class="sourceLineNo">778</span>        @Override<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public ShortDataset setByIndexes(final Object obj, final Object... indexes) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                setDirty();<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                final int[] pos = iter.getPos();<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>                if (obj instanceof Dataset) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>                        final Dataset ds = (Dataset) obj;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                                throw new IllegalArgumentException(<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.788"></a>
+<span class="sourceLineNo">789</span>                        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.791"></a>
+<span class="sourceLineNo">792</span><a name="line.792"></a>
+<span class="sourceLineNo">793</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.793"></a>
+<span class="sourceLineNo">794</span>                                setItem((short) ds.getElementLongAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.794"></a>
+<span class="sourceLineNo">795</span>                        }<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                } else {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final short dv = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        while (iter.hasNext()) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                setItem(dv, pos);<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                        }<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                return this;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        }<a name="line.804"></a>
+<span class="sourceLineNo">805</span><a name="line.805"></a>
+<span class="sourceLineNo">806</span>        @Override<a name="line.806"></a>
+<span class="sourceLineNo">807</span>        ShortDataset setSlicedView(Dataset view, Dataset d) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                setDirty();<a name="line.808"></a>
+<span class="sourceLineNo">809</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>                while (it.hasNext()) {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                        data[it.aIndex] = (short) it.bLong; // BCAST_WITH_CAST d.getElementLongAbs(it.bIndex);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                }<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                return this;<a name="line.814"></a>
+<span class="sourceLineNo">815</span>        }<a name="line.815"></a>
+<span class="sourceLineNo">816</span><a name="line.816"></a>
+<span class="sourceLineNo">817</span>        @Override<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        public ShortDataset setSlice(final Object obj, final IndexIterator siter) {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                setDirty();<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>                if (obj instanceof IDataset) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span>                        final IDataset ds = (IDataset) obj;<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                        final int[] oshape = ds.getShape();<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                                throw new IllegalArgumentException(String.format(<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                                                Arrays.toString(siter.getShape())));<a name="line.828"></a>
+<span class="sourceLineNo">829</span>                        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>                        if (ds instanceof Dataset) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>                                final Dataset ads = (Dataset) ds;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                                        data[siter.index] = (short) ads.getElementLongAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.836"></a>
+<span class="sourceLineNo">837</span>                        } else {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>                                final int[] pos = oiter.getPos();<a name="line.839"></a>
+<span class="sourceLineNo">840</span><a name="line.840"></a>
+<span class="sourceLineNo">841</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                                        data[siter.index] = ds.getShort(pos); // PRIM_TYPE<a name="line.842"></a>
+<span class="sourceLineNo">843</span>                        }<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                } else {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                        try {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                                short v = (short) DTypeUtils.toLong(obj); // PRIM_TYPE // FROM_OBJECT<a name="line.846"></a>
+<span class="sourceLineNo">847</span><a name="line.847"></a>
+<span class="sourceLineNo">848</span>                                while (siter.hasNext())<a name="line.848"></a>
+<span class="sourceLineNo">849</span>                                        data[siter.index] = v;<a name="line.849"></a>
+<span class="sourceLineNo">850</span>                        } catch (IllegalArgumentException e) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                return this;<a name="line.854"></a>
+<span class="sourceLineNo">855</span>        }<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>        @Override<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                short[] ddata = (short[]) dest.getBuffer(); // PRIM_TYPE<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.862"></a>
+<span class="sourceLineNo">863</span><a name="line.863"></a>
+<span class="sourceLineNo">864</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                }<a name="line.868"></a>
+<span class="sourceLineNo">869</span><a name="line.869"></a>
+<span class="sourceLineNo">870</span>                dest.setDirty();<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        ddata[diter.index] = data[siter.index];<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                }<a name="line.873"></a>
+<span class="sourceLineNo">874</span>        }<a name="line.874"></a>
+<span class="sourceLineNo">875</span><a name="line.875"></a>
+<span class="sourceLineNo">876</span>        @Override<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                setDirty();<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                short[] sdata = (short[]) src; // PRIM_TYPE<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                }<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        data[siter.index] = sdata[i];<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                }<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        }<a name="line.890"></a>
+<span class="sourceLineNo">891</span><a name="line.891"></a>
+<span class="sourceLineNo">892</span>        private List&lt;int[]&gt; findPositions(final short value) { // PRIM_TYPE<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                IndexIterator iter = getIterator(true);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                int[] pos = iter.getPos();<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>                {<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        while (iter.hasNext()) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                                if (data[iter.index] == value) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                                        posns.add(pos.clone());<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                                }<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        }<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                return posns;<a name="line.904"></a>
+<span class="sourceLineNo">905</span>        }<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>        @Override<a name="line.907"></a>
+<span class="sourceLineNo">908</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>                if (max == null) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        max = findPositions(md.getMaximum(ignoreInvalids).shortValue()); // PRIM_TYPE<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>                        md.setMaximumPositions(max);<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                }<a name="line.920"></a>
+<span class="sourceLineNo">921</span><a name="line.921"></a>
+<span class="sourceLineNo">922</span>                return max.get(0); // first maximum<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        }<a name="line.923"></a>
+<span class="sourceLineNo">924</span><a name="line.924"></a>
+<span class="sourceLineNo">925</span>        @Override<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                StatisticsMetadata&lt;Number&gt; md = getStats(); // PRIM_TYPE<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                // StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.930"></a>
+<span class="sourceLineNo">931</span><a name="line.931"></a>
+<span class="sourceLineNo">932</span>                if (min == null) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        min = findPositions(md.getMinimum(ignoreInvalids).shortValue()); // PRIM_TYPE<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.935"></a>
+<span class="sourceLineNo">936</span><a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        md.setMinimumPositions(min);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return min.get(0); // first minimum<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>        @Override<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        public boolean containsNans() {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                return false;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public boolean containsInfs() {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                return false;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>        @Override<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        public boolean containsInvalidNumbers() {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                return false;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>        @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        public ShortDataset iadd(final Object b) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                setDirty();<a name="line.960"></a>
+<span class="sourceLineNo">961</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.962"></a>
+<span class="sourceLineNo">963</span>                if (bds.getSize() == 1) {<a name="line.963"></a>
+<span class="sourceLineNo">964</span>                        final IndexIterator it = getIterator();<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                        final int bOffset = bds.getOffset();<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                        if (useLong) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.967"></a>
+<span class="sourceLineNo">968</span>                                while (it.hasNext()) {<a name="line.968"></a>
+<span class="sourceLineNo">969</span>                                        data[it.index] += lb;<a name="line.969"></a>
+<span class="sourceLineNo">970</span>                                }<a name="line.970"></a>
+<span class="sourceLineNo">971</span>                        } else {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                                while (it.hasNext()) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                                        data[it.index] += db;<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                                }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                        }<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                } else {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>                        it.setOutputDouble(!useLong);<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                        if (useLong) {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                                while (it.hasNext()) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                                        data[it.aIndex] += it.bLong;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                                }<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                        } else {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                                while (it.hasNext()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                                        data[it.aIndex] += it.bDouble;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                                }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                        }<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>                return this;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span><a name="line.992"></a>
+<span class="sourceLineNo">993</span>        @Override<a name="line.993"></a>
+<span class="sourceLineNo">994</span>        public ShortDataset isubtract(final Object b) {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>                setDirty();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.997"></a>
+<span class="sourceLineNo">998</span>                if (bds.getSize() == 1) {<a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        final IndexIterator it = getIterator();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                        final int bOffset = bds.getOffset();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                        if (useLong) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                while (it.hasNext()) {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        data[it.index] -= lb;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                        } else {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                while (it.hasNext()) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                        data[it.index] -= db;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                        }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                } else {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                        if (useLong) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                it.setOutputDouble(false);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                while (it.hasNext()) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                        data[it.aIndex] -= it.bLong;<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                        } else {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                it.setOutputDouble(true);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                while (it.hasNext()) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                        data[it.aIndex] -= it.bDouble;<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                        }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                return this;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>        }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span><a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>        @Override<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>        public ShortDataset imultiply(final Object b) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                setDirty();<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                if (bds.getSize() == 1) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                        final IndexIterator it = getIterator();<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                        final int bOffset = bds.getOffset();<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                        if (useLong) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                while (it.hasNext()) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        data[it.index] *= lb;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                }<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                        } else {<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                while (it.hasNext()) {<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                                        data[it.index] *= db;<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                }<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                        }<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>                } else {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                        it.setOutputDouble(!useLong);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                        if (useLong) {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                while (it.hasNext()) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        data[it.aIndex] *= it.bLong;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                        } else {<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                while (it.hasNext()) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                        data[it.aIndex] *= it.bDouble;<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                }<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                        }<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                return this;<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span><a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        @Override<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>        public ShortDataset idivide(final Object b) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                setDirty();<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                if (bds.getSize() == 1) {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                        final int bOffset = bds.getOffset();<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                        if (useLong) {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                if (lb == 0) { // INT_USE<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                        fill(0); // INT_USE<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                } else { // INT_USE<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                final IndexIterator it = getIterator();<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                while (it.hasNext()) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        data[it.index] /= lb;<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                }<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                } // INT_USE<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                        } else {<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                final double db = bds.getElementDoubleAbs(bOffset);<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                if (db == 0) { // INT_USE<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                        fill(0); // INT_USE<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                } else { // INT_USE<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                final IndexIterator it = getIterator();<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                while (it.hasNext()) {<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                        data[it.index] /= db;<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                }<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                } // INT_USE<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                        }<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                } else {<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                        it.setOutputDouble(!useLong);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                        if (useLong) {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                while (it.hasNext()) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                        if (it.bLong == 0) { // INT_USE<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                        } else { // INT_USE<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        data[it.aIndex] /= it.bLong;<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        } // INT_USE<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                }<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                        } else {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                while (it.hasNext()) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                        if (it.bDouble == 0) { // INT_USE<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        } else { // INT_USE<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                        data[it.aIndex] /= it.bDouble;<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                        } // INT_USE<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                }<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                        }<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                return this;<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>        }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span><a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>        @Override<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>        public ShortDataset ifloor() {<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                return this;<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>        }<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>        @Override<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>        public ShortDataset iremainder(final Object b) {<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                setDirty();<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                boolean useLong = bds.getElementClass().equals(Long.class);<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                if (bds.getSize() == 1) {<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                        final int bOffset = bds.getOffset();<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                        if (useLong) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                if (lb == 0) { // INT_USE<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        fill(0); // INT_USE<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                } else { // INT_USE<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                final IndexIterator it = getIterator();<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                while (it.hasNext()) {<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        data[it.index] %= lb;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                }<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                } // INT_USE<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                        } else {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                final long lb = bds.getElementLongAbs(bOffset);<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                if (lb == 0) { // INT_USE<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        fill(0); // INT_USE<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                } else { // INT_USE<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                final IndexIterator it = getIterator();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                while (it.hasNext()) {<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                        data[it.index] %= lb;<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                }<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                } // INT_USE<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                        }<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                } else {<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                        final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(this, bds);<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                        it.setOutputDouble(!useLong);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                        if (useLong) {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                while (it.hasNext()) {<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                try {<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                                data[it.aIndex] %= it.bLong; // INT_EXCEPTION<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                } catch (ArithmeticException e) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                        data[it.aIndex] = 0;<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                }<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                        } else {<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                while (it.hasNext()) {<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        data[it.aIndex] %= it.bDouble;<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                }<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                        }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                return this;<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>        }<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span><a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>        @Override<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        public ShortDataset ipower(final Object b) {<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>                setDirty();<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>                if (bds.getSize() == 1) {<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>                        final int bOffset = bds.getOffset();<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>                        final double vr = bds.getElementDoubleAbs(bOffset);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>                        final IndexIterator it = getIterator();<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>                        if (bds.isComplex()) {<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>                                final double vi = bds.getElementDoubleAbs(bOffset + 1);<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                                if (vi == 0) {<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>                                        while (it.hasNext()) {<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>                                                final double v = Math.pow(data[it.index], vr);<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>                                                } else { // INT_USE<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>                                                data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>                                                } // INT_USE<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>                                        }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>                                } else {<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>                                        final Complex zv = new Complex(vr, vi);<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                                        while (it.hasNext()) {<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                                                Complex zd = new Complex(data[it.index], 0);<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                                                final double v = zd.pow(zv).getReal();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                                                if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                                                        data[it.index] = 0; // INT_USE<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>                                                } else { // INT_USE<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                                                data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                                                } // INT_USE<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                                        }<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                                }<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        } else {// NAN_OMIT<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                                while (it.hasNext()) {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                                        final double v = Math.pow(data[it.index], vr);<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                                                data[it.index] = 0; // INT_USE<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                                        } else { // INT_USE<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                                        data[it.index] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>                                        } // INT_USE<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                                }<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>                        }<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                } else {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>                        final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        it.setOutputDouble(true);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                        if (bds.isComplex()) {<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                while (it.hasNext()) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                        final Complex zv = new Complex(it.bDouble, bds.getElementDoubleAbs(it.bIndex + 1));<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        final double v = new Complex(it.aDouble, 0).pow(zv).getReal();<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                        } else { // INT_USE<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                        } // INT_USE<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                }<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                        } else {// NAN_OMIT<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                while (it.hasNext()) {<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                        final double v = Math.pow(it.aDouble, it.bDouble);<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                        if (Double.isInfinite(v) || Double.isNaN(v)) { // INT_USE<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                data[it.aIndex] = 0; // INT_USE<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                        } else { // INT_USE<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                        data[it.aIndex] = (short) (long) v; // PRIM_TYPE_LONG // ADD_CAST<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                        } // INT_USE<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                }<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                        }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                }<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                return this;<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>        }<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span><a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>        @Override<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                Dataset bds = b instanceof Dataset ? (Dataset) b : DatasetFactory.createFromObject(b);<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                final BroadcastIterator it = BroadcastIterator.createIterator(this, bds);<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                it.setOutputDouble(true);<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                double sum = 0;<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                double comp = 0;<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                        if (w == null) {<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                while (it.hasNext()) {<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                        final double err = diff * diff - comp;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                        final double temp = sum + err;<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                        comp = (temp - sum) - err;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                        sum = temp;<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                }<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                        } else {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                IndexIterator itw = w.getIterator();<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                while (it.hasNext() &amp;&amp; itw.hasNext()) {<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        final double diff = it.aDouble - it.bDouble;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                        final double err = diff * diff * w.getElementDoubleAbs(itw.index) - comp;<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                                        final double temp = sum + err;<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                        comp = (temp - sum) - err;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                        sum = temp;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                }<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>                        }<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                return sum;<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>        }<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>}<a name="line.1266"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
new file mode 100644
index 0000000..add1cb7
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SingleInputBroadcastIterator.html
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.List;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over a single dataset with NumPy broadcasting to promote shapes<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * which have lower rank and outputs to a second dataset<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public class SingleInputBroadcastIterator extends IndexIterator {<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] maxShape;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int[] aShape;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private final Dataset aDataset;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private final Dataset oDataset;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int[] aStride;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        private int[] oStride;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        final private int endrank;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * position in dataset<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private final int[] pos;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        private final int[] aDelta;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private final int[] oDelta; // this being non-null means output is different from inputs<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        private final int aStep, oStep;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        private int aMax;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        private int aStart, oStart;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        private final boolean outputA;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>        /**<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * Index in array<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public int aIndex, oIndex;<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Current value in array<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public double aDouble;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * Current value in array<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public long aLong;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        private boolean asDouble = true;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * @param a<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param o (can be null for new dataset, or a)<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        public SingleInputBroadcastIterator(Dataset a, Dataset o) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                this(a, o, false);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param a<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param o (can be null for new dataset, or a)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param createIfNull (by default, can create float or complex datasets)<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public SingleInputBroadcastIterator(Dataset a, Dataset o, boolean createIfNull) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                this(a, o, createIfNull, false, true);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @param a<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param o (can be null for new dataset, or a)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param createIfNull<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param allowInteger if true, can create integer datasets<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * @param allowComplex if true, can create complex datasets<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        @SuppressWarnings("deprecation")<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        public SingleInputBroadcastIterator(Dataset a, Dataset o, boolean createIfNull, boolean allowInteger, boolean allowComplex) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                List&lt;int[]&gt; fullShapes = BroadcastUtils.broadcastShapes(a.getShapeRef(), o == null ? null : o.getShapeRef());<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>                BroadcastUtils.checkItemSize(a, o);<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>                maxShape = fullShapes.remove(0);<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>                oStride = null;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (o != null) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        if (!Arrays.equals(maxShape, o.getShapeRef())) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                                throw new IllegalArgumentException("Output does not match broadcasted shape");<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        o.setDirty();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>                aShape = fullShapes.remove(0);<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>                int rank = maxShape.length;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                endrank = rank - 1;<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>                aDataset = a.reshape(aShape);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                aStride = BroadcastUtils.createBroadcastStrides(aDataset, maxShape);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                outputA = o == a;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                if (outputA) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        oStride = aStride;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        oDelta = null;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        oStep = 0;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        oDataset = aDataset;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                } else if (o != null) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        oStride = BroadcastUtils.createBroadcastStrides(o, maxShape);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                        oDelta = new int[rank];<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                        oStep = o.getElementsPerItem();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        oDataset = o;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                } else if (createIfNull) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                        int is = aDataset.getElementsPerItem();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        int dt = aDataset.getDType();<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                        if (aDataset.isComplex() &amp;&amp; !allowComplex) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                is = 1;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                                dt = DTypeUtils.getBestFloatDType(dt);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        } else if (!aDataset.hasFloatingPointElements() &amp;&amp; !allowInteger) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                dt = DTypeUtils.getBestFloatDType(dt);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        oDataset = DatasetFactory.zeros(is, maxShape, dt);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        oStride = BroadcastUtils.createBroadcastStrides(oDataset, maxShape);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        oDelta = new int[rank];<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        oStep = oDataset.getElementsPerItem();<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                } else {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        oDelta = null;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        oStep = 0;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        oDataset = o;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>                pos = new int[rank];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                aDelta = new int[rank];<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                aStep = aDataset.getElementsPerItem();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        aDelta[j] = aStride[j] * aShape[j];<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        if (oDelta != null) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                oDelta[j] = oStride[j] * maxShape[j];<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                aStart = aDataset.getOffset();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                aMax = endrank &lt; 0 ? aStep + aStart: Integer.MIN_VALUE;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                oStart = oDelta == null ? 0 : oDataset.getOffset();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                asDouble = aDataset.hasFloatingPointElements();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                reset();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @return true if output from iterator is double<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public boolean isOutputDouble() {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                return asDouble;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * Set to output doubles<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @param asDouble<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        public void setOutputDouble(boolean asDouble) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                if (this.asDouble != asDouble) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        this.asDouble = asDouble;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        storeCurrentValues();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>        @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public int[] getShape() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                return maxShape;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        @Override<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public boolean hasNext() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                int j = endrank;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                int oldA = aIndex;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                for (; j &gt;= 0; j--) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        pos[j]++;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                        aIndex += aStride[j];<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                        if (oDelta != null) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                oIndex += oStride[j];<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        if (pos[j] &gt;= maxShape[j]) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                pos[j] = 0;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                aIndex -= aDelta[j]; // reset these dimensions<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                if (oDelta != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                        oIndex -= oDelta[j];<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                                }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>                        } else {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                break;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                if (j == -1) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        if (endrank &gt;= 0) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                return false;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        aIndex += aStep;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        if (oDelta != null) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                oIndex += oStep;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                if (outputA) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                        oIndex = aIndex;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>                if (aIndex == aMax) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        return false; // used for zero-rank datasets<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                if (oldA != aIndex) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>                        if (asDouble) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                        } else {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                                aLong = aDataset.getElementLongAbs(aIndex);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return true;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>        /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * @return output dataset (can be null)<a name="line.225"></a>
+<span class="sourceLineNo">226</span>         */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public Dataset getOutput() {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                return oDataset;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>        @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        public int[] getPos() {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return pos;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        public void reset() {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                for (int i = 0; i &lt;= endrank; i++) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                        pos[i] = 0;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>                if (endrank &gt;= 0) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        pos[endrank] = -1;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        aIndex = aStart - aStride[endrank];<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                        oIndex = oStart - (oStride == null ? 0 : oStride[endrank]);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                } else {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        aIndex = -aStep;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        oIndex = -oStep;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>                // for zero-ranked datasets<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                if (aIndex == 0) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        storeCurrentValues();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>        private void storeCurrentValues() {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                if (aIndex &gt;= 0) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                        if (asDouble) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                                aDouble = aDataset.getElementDoubleAbs(aIndex);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                        } else {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                aLong = aDataset.getElementLongAbs(aIndex);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>}<a name="line.266"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SingleItemIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SingleItemIterator.html
new file mode 100644
index 0000000..b1501ad
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SingleItemIterator.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Class to run over a broadcasted single-item dataset<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public class SingleItemIterator extends IndexIterator {<a name="line.18"></a>
+<span class="sourceLineNo">019</span>        final private int size;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>        final private int offset;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        private int i;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * Constructor for an iterator over single item that will be broadcast over<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * given size of broadcast shape<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param offset offset to single item<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param size<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public SingleItemIterator(final int offset, final int size) {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>                this.size = size;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>                this.offset = offset;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>                reset();<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public boolean hasNext() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                return i++ &lt; size;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        @Override<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public int[] getPos() {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                return null;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        @Override<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public void reset() {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                index = offset;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                i = 0;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        }<a name="line.49"></a>
+<span class="sourceLineNo">050</span>}<a name="line.50"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Slice.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Slice.html
new file mode 100644
index 0000000..f911ff3
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Slice.html
@@ -0,0 +1,755 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**     <a name="line.17"></a>
+<span class="sourceLineNo">018</span> * The {@code Slice} class represents the set of indices (start, stop, step), that are used to extract specifics subsets of {@link org.eclipse.january.dataset.Dataset}.&lt;br&gt;&lt;br&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * The start argument default to 0, stop argument default to the stop argument default to the end of the dimension that the slice is applied to, and the default argument for the step is 1.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * &lt;br&gt;&lt;br&gt;<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * The start index is inclusive, for example, if we want to get data from index 1, so sliceData will be &lt;b&gt;[2,3]&lt;/b&gt; :<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * &lt;pre&gt;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>* {@code<a name="line.23"></a>
+<span class="sourceLineNo">024</span>* final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});<a name="line.24"></a>
+<span class="sourceLineNo">025</span>* Dataset sliceData = onedData.getSlice(new Slice(1, null, null));<a name="line.25"></a>
+<span class="sourceLineNo">026</span>* }<a name="line.26"></a>
+<span class="sourceLineNo">027</span>* &lt;/pre&gt;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>* <a name="line.28"></a>
+<span class="sourceLineNo">029</span>* If Slice is specified with only one argument, this will be the stop index which is exclusive. In this case sliceData will be &lt;b&gt;[1,2]&lt;/b&gt; :<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * &lt;pre&gt;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>* {@code<a name="line.31"></a>
+<span class="sourceLineNo">032</span>* final Dataset onedData = DatasetFactory.createFromObject(new int[]{1,2,3});<a name="line.32"></a>
+<span class="sourceLineNo">033</span>* Dataset sliceData = onedData.getSlice(new Slice(2));<a name="line.33"></a>
+<span class="sourceLineNo">034</span>* }<a name="line.34"></a>
+<span class="sourceLineNo">035</span>* &lt;/pre&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>* <a name="line.36"></a>
+<span class="sourceLineNo">037</span>* To create a 1D Slice, so sliceData is : &lt;b&gt;[6, 5, 4]&lt;/b&gt;, we will do :<a name="line.37"></a>
+<span class="sourceLineNo">038</span>* &lt;pre&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>* {@code<a name="line.39"></a>
+<span class="sourceLineNo">040</span>* final Dataset sliceData = DatasetFactory.createFromObject(new int[]{10,9,8,7,6,5,4,3,2,1,0});<a name="line.40"></a>
+<span class="sourceLineNo">041</span>* Dataset newOnedData = sliceData.getSlice(new Slice(4, 7, 1));<a name="line.41"></a>
+<span class="sourceLineNo">042</span>* }<a name="line.42"></a>
+<span class="sourceLineNo">043</span>* &lt;/pre&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>* &lt;br&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>* For more informations, see the sliceFrom1D example in SlicingExamples.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class Slice implements Cloneable, Serializable {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        private static final long serialVersionUID = 3714928852236201310L;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        private Integer start;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        private Integer stop;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        private int step;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        private int length; // max length of dimension<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Constructs a Slice object with the start and the stop value representing<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * the entirety of the sliced dimension of the Dataset.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public Slice() {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                this(null, null, 1);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>        /**<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * Constructs a Slice object with, by default the start set to 0 and with a<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * step of 1. If the stop point of the Slice is {@code null}, it will be set<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * to the stop argument default to the end of the dimension that the slice<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * is applied to.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * <a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param stop<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         *            the stop point of the Slice<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public Slice(final Integer stop) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                this(null, stop, 1);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * Constructs a Slice object with, by default a step of 1. If the start<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * point of the Slice is {@code null}, it will be set automatically to 0. If<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * the stop point of the Slice is {@code null}, it will be set to the stop<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * argument default to the end of the dimension that the slice is applied<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         * to.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * <a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * @param start<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         *            the start point of the Slice<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param stop<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            the stop point of the Slice<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        public Slice(final Integer start, final Integer stop) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                this(start, stop, 1);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>        }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>        /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * Constructs a Slice object on which it is possible to chooe the start, the<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         * stop and the step. If the start point of the Slice is {@code null}, it<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * will be set automatically to 0. If the stop point of the Slice is<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * {@code null}, it will be set to the stop argument default to the end of<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * the dimension that the slice is applied to. If the the wanted step is set<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         * to {@code null}, it will be set by default to 1.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * <a name="line.100"></a>
+<span class="sourceLineNo">101</span>         * @param start<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         *            the start point of the Slice, may be {@code null}<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @param stop<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         *            the stop point of the Slice, may be {@code null}<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param step<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         *            the step wanted to browse the Dataset, may be {@code null}<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        public Slice(final Integer start, final Integer stop, final Integer step) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                this.start = start;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                this.stop = stop;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                this.step = step == null ? 1 : step;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                length = -1;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>        /**<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * Copy another slice<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * <a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param other<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        private Slice(final Slice other) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                start = other.start;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                stop = other.stop;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                step = other.step;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                length = other.length;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * Creates a deep copy of the Slice.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * <a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * @return New Slice with the current Slice properties<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        @Override<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        public Slice clone() {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                return new Slice(this);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>        /**<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         * Sets the maximal dimensions length of the Slice.<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * <a name="line.139"></a>
+<span class="sourceLineNo">140</span>         * @param length<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         *            Wanted size of dimensions<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @return The Slice which the method is called on<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public Slice setLength(int length) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                if (stop != null &amp;&amp; step &gt; 0 &amp;&amp; length &lt; stop) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        throw new IllegalArgumentException("Length must be greater than or equal to stop");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                if (start != null &amp;&amp; step &lt; 0 &amp;&amp; length &lt; start) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        throw new IllegalArgumentException("Length must be greater than or equal to start");<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                }<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                this.length = length;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                return this;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>        /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         * Returns {@code true} if the slice has a maximum size equal to the current<a name="line.156"></a>
+<span class="sourceLineNo">157</span>         * size, else {@code false}.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>         * <a name="line.158"></a>
+<span class="sourceLineNo">159</span>         * @return {@code true} if slice represents complete dimension,<a name="line.159"></a>
+<span class="sourceLineNo">160</span>         *         {@code false} in the other case.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        public boolean isSliceComplete() {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                if (start == null &amp;&amp; stop == null &amp;&amp; (step == 1 || step == -1))<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        return true;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                if (length &gt; 0) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        return getNumSteps() == length;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                return true;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        /**<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * Returns the maximum value of the slice.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * <a name="line.174"></a>
+<span class="sourceLineNo">175</span>         * @return Maximum value of the slice<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         */<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public int getLength() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return length;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        /**<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         * Returns the starting index of the slice.<a name="line.182"></a>
+<span class="sourceLineNo">183</span>         * <a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * @return Start point of the slice<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        public Integer getStart() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                return start;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>        /**<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * Returns the stopping index of the slice.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * <a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @return Stop point of the slice<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        public Integer getStop() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return stop;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>        /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         * Returns the step of the slice.<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         * <a name="line.201"></a>
+<span class="sourceLineNo">202</span>         * @return Step of the slice<a name="line.202"></a>
+<span class="sourceLineNo">203</span>         */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        public int getStep() {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                return step;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>        /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * Set the starting index of the slice. If the start point of the Slice is<a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * {@code null}, it will be set automatically to 0.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         * <a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * @param start<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         *            Starting index of the Slice, may be {@code null}<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        public void setStart(Integer start) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                if (start != null &amp;&amp; length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        if (step &gt; 0) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                                int end = stop == null ? length : stop;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                                if (start &gt;= end) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                        throw new IllegalArgumentException("Non-null start must be less than end");<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                int end = stop == null ? -1 : stop;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                if (start &lt; end) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                        throw new IllegalArgumentException("Non-null start must be greater than end for negative step");<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                                }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                        }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                this.start = start;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>        /**<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         * Set the stopping index of the slice. If the stop point of the Slice is<a name="line.233"></a>
+<span class="sourceLineNo">234</span>         * {@code null}, it will be set to the stop argument default to the end of<a name="line.234"></a>
+<span class="sourceLineNo">235</span>         * the dimension that the slice is applied to.<a name="line.235"></a>
+<span class="sourceLineNo">236</span>         * <a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * @param stop<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         *            Stopping index of the Slice, may be {@code null}<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public void setStop(Integer stop) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                if (stop != null &amp;&amp; length &gt; 0) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        if (step &gt; 0) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                int beg = start == null ? 0 : start;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                if (stop &lt; beg) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                        throw new IllegalArgumentException("Non-null stop must be greater than or equal to beginning");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                }<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        } else {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                int beg = start == null ? length - 1 : start;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                if (stop &gt;= beg) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                        throw new IllegalArgumentException("Non-null stop must be less than beginning for negative step");<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                                }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        if (stop &gt; length)<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                stop = length;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                }<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                this.stop = stop;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        /**<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * Move the start and end to an other index keeping the same step and the<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * same gap between the two values<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * <a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param beg<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         *            New starting point<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @return Return {@code true} if the end was reached, {@code false} in the<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         *         other case.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>         */<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        public boolean setPosition(int beg) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                boolean end = false;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                int len = getNumSteps();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                int max = getNumSteps(beg, length, step);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                if (len &gt; max) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        len = max;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                        end = true;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                start = beg;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                stop = start + (len - 1) * step + 1;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return end;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        /**<a name="line.281"></a>
+<span class="sourceLineNo">282</span>         * Returns the index of the n-th step inside of the slice<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * <a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * @param n<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         *            Wanted step index in the slice<a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @return Return the index of the step inside of the Slice<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         */<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        public int getPosition(int n) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                if (n &lt; 0)<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        throw new IllegalArgumentException("Given n-th step should be non-negative");<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                if (n &gt;= getNumSteps())<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        throw new IllegalArgumentException("N-th step exceeds extent of slice");<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                int beg;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                if (start == null) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                        if (step &lt; 0) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                if (length &lt; 0) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        if (stop == null) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                                throw new IllegalStateException("Length or stop should be set");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        beg = stop - 1;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                } else {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                                        beg = length - 1;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        } else {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                                beg = 0;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                } else {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                        beg = start;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                return beg + step * n;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>        /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * Set the step size inside of the Slice. If the the wanted step is set to<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         * {@code null}, it will be set by default to 1.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>         * <a name="line.316"></a>
+<span class="sourceLineNo">317</span>         * @param step<a name="line.317"></a>
+<span class="sourceLineNo">318</span>         *            New wanted step, may be {@code null}<a name="line.318"></a>
+<span class="sourceLineNo">319</span>         */<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        public void setStep(int step) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                if (step == 0) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        throw new IllegalArgumentException("Step must not be zero");<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                }<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                this.step = step;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * Returns a String representation of the Slice comparable to the python<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * representation.<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         * <a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * @param s<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         *            String builder<a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @param len<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         *            Maximal length of the Slice, or -1 if not set<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * @param beg<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         *            Start index of the Slice<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @param end<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         *            Stop index of the Slice<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @param del<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         *            Step of the Slice<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        public static void appendSliceToString(final StringBuilder s, final int len, final int beg, final int end,<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                        final int del) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                int o = s.length();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                if (del &gt; 0) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                        if (beg != 0)<a name="line.346"></a>
+<span class="sourceLineNo">347</span>                                s.append(beg);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                } else {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        if (beg != len - 1)<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                s.append(beg);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>                int n = getNumSteps(beg, end, del);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                if (n == 1) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                        if (s.length() == o) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                s.append(beg);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                        }<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                        return;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>                s.append(':');<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>                if (del &gt; 0) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        if (end != len)<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                s.append(end);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                } else {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                        if (end != -1)<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                                s.append(end);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>                if (del != 1) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                        s.append(':');<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                        s.append(del);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>        /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * Returns a string construction of the slice with the python form.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * <a name="line.379"></a>
+<span class="sourceLineNo">380</span>         * @return Constructed String.<a name="line.380"></a>
+<span class="sourceLineNo">381</span>         */<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        public String toString() {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                StringBuilder s = new StringBuilder();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                appendSliceToString(s, length, start != null ? start : (step &gt; 0 ? 0 : length - 1),<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                stop != null ? stop : (step &gt; 0 ? length : -1), step);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return s.toString();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        /**<a name="line.390"></a>
+<span class="sourceLineNo">391</span>         * Returns the number of steps inside of the Slice<a name="line.391"></a>
+<span class="sourceLineNo">392</span>         * <a name="line.392"></a>
+<span class="sourceLineNo">393</span>         * @return Number of steps inside of the Slice<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         */<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        public int getNumSteps() {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                if (length &lt; 0) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                        if (stop == null)<a name="line.397"></a>
+<span class="sourceLineNo">398</span>                                throw new IllegalStateException("Slice is underspecified - stop is null and length is negative");<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                        int beg = start == null ? (step &gt; 0 ? 0 : stop - 1) : start;<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                        if (step &gt; 0 &amp;&amp; stop &lt;= beg)<a name="line.400"></a>
+<span class="sourceLineNo">401</span>                                return 0;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                        if (step &lt; 0 &amp;&amp; stop &gt; beg)<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                                return 0;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>                        return getNumSteps(beg, stop, step);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>                }<a name="line.405"></a>
+<span class="sourceLineNo">406</span>                int beg = start == null ? (step &gt; 0 ? 0 : length - 1) : start;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                int end = stop == null ? (step &gt; 0 ? length : -1) : stop;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getNumSteps(beg, end, step);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        /**<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * Returns the number of steps inside of the Slice from a point to an other<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * point minus 1 because this is an exclusive index<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * <a name="line.414"></a>
+<span class="sourceLineNo">415</span>         * @param beg<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         *            Starting point<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         * @param end<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         *            (exclusive) Stopping point<a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * @return Numbers of steps between the 2 limits.<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         */<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public int getNumSteps(int beg, int end) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                return getNumSteps(beg, end, step);<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>        private static int getNumSteps(int beg, int end, int step) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                int del = step &gt; 0 ? 1 : -1;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return Math.max(0, (end - beg - del) / step + 1);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>        /**<a name="line.430"></a>
+<span class="sourceLineNo">431</span>         * Returns the last value inside of Slice.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>         * <a name="line.432"></a>
+<span class="sourceLineNo">433</span>         * @return Last value in the slice, it can be a lower value than the start<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         *         if the step is going backward<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public int getEnd() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                int n = getNumSteps() - 1;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>                if (n &lt; 0)<a name="line.438"></a>
+<span class="sourceLineNo">439</span>                        throw new IllegalStateException("End is not defined");<a name="line.439"></a>
+<span class="sourceLineNo">440</span><a name="line.440"></a>
+<span class="sourceLineNo">441</span>                return getPosition(n);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>        /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         * Flips the Slice direction, after this operation, the slice begins at<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         * previous end point, steps in the opposite direction, and finishes at the<a name="line.446"></a>
+<span class="sourceLineNo">447</span>         * previous start point.<a name="line.447"></a>
+<span class="sourceLineNo">448</span>         * &lt;p&gt;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>         * Note : the stop value may not be preserved across two flips<a name="line.449"></a>
+<span class="sourceLineNo">450</span>         * &lt;/p&gt;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>         * <a name="line.451"></a>
+<span class="sourceLineNo">452</span>         * @return Flipped Slice.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>         */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>        public Slice flip() {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>                if (length &lt; 0) {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                        Integer tmp = start == null ? null : start - step;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                        start = stop == null ? null : getEnd();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        stop = tmp;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                } else {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>                        Integer tstart = start;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>                        start = stop == null ? null : getEnd();<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                        stop = tstart == null ? null : tstart - step;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>                }<a name="line.463"></a>
+<span class="sourceLineNo">464</span>                step = -step;<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>                return this;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>        /**<a name="line.469"></a>
+<span class="sourceLineNo">470</span>         * Populates given start, stop, step arrays from given slice array<a name="line.470"></a>
+<span class="sourceLineNo">471</span>         * <a name="line.471"></a>
+<span class="sourceLineNo">472</span>         * @param slice<a name="line.472"></a>
+<span class="sourceLineNo">473</span>         *            Input array of Slices wanted to convert<a name="line.473"></a>
+<span class="sourceLineNo">474</span>         * @param shape<a name="line.474"></a>
+<span class="sourceLineNo">475</span>         *            Input array of Slices shapes<a name="line.475"></a>
+<span class="sourceLineNo">476</span>         * @param start<a name="line.476"></a>
+<span class="sourceLineNo">477</span>         *            Output array of Slices starts<a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * @param stop<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         *            Output array of Slices stops<a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * @param step<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         *            Output array of Slices steps<a name="line.481"></a>
+<span class="sourceLineNo">482</span>         */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        public static void convertFromSlice(final Slice[] slice, final int[] shape, final int[] start, final int[] stop,<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                        final int[] step) {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                final int rank = shape.length;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                final int length = slice == null ? 0 : slice.length;<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>                int i = 0;<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                for (; i &lt; length; i++) {<a name="line.489"></a>
+<span class="sourceLineNo">490</span>                        if (length &gt; rank)<a name="line.490"></a>
+<span class="sourceLineNo">491</span>                                break;<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        Slice s = slice[i];<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                        if (s == null) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>                                start[i] = 0;<a name="line.495"></a>
+<span class="sourceLineNo">496</span>                                stop[i] = shape[i];<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                                step[i] = 1;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>                                continue;<a name="line.498"></a>
+<span class="sourceLineNo">499</span>                        }<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        int n;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        if (s.start == null) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                                start[i] = s.step &gt; 0 ? 0 : shape[i] - 1;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        } else {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                                n = s.start;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                                if (n &lt; 0)<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                                        n += shape[i];<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                                if (n &lt; 0 || n &gt;= shape[i]) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                                        throw new IllegalArgumentException(<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                                                        String.format("Start is out of bounds: %d is not in [%d,%d)", n, s.start, shape[i]));<a name="line.509"></a>
+<span class="sourceLineNo">510</span>                                }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>                                start[i] = n;<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                        }<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>                        if (s.stop == null) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>                                stop[i] = s.step &gt; 0 ? shape[i] : -1;<a name="line.515"></a>
+<span class="sourceLineNo">516</span>                        } else {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                                n = s.stop;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>                                if (n &lt; 0)<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                                        n += shape[i];<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                                if (n &lt; 0 || n &gt; shape[i]) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                                        throw new IllegalArgumentException(<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                                                        String.format("Stop is out of bounds: %d is not in [%d,%d)", n, s.stop, shape[i]));<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                                }<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                                stop[i] = n;<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>                        n = s.step;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>                        if (n == 0) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                                throw new IllegalArgumentException("Step cannot be zero");<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                        if (n &gt; 0) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                                if (start[i] &gt; stop[i])<a name="line.532"></a>
+<span class="sourceLineNo">533</span>                                        throw new IllegalArgumentException("Start must be less than stop for positive steps");<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        } else {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                                if (start[i] &lt; stop[i])<a name="line.535"></a>
+<span class="sourceLineNo">536</span>                                        throw new IllegalArgumentException("Start must be greater than stop for negative steps");<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                        }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        step[i] = n;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>                for (; i &lt; rank; i++) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>                        start[i] = 0;<a name="line.541"></a>
+<span class="sourceLineNo">542</span>                        stop[i] = shape[i];<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                        step[i] = 1;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                }<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>        /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         * Converts a set of integer arrays in a slice array<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * <a name="line.549"></a>
+<span class="sourceLineNo">550</span>         * @param start<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         *            Array of Slices starts<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param stop<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         *            Array of Slices stops<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param step<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         *            Array of Slices steps<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @return Slice array corresponding to the starts, stops and steps arrays<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         *         entered.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         */<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        public static Slice[] convertToSlice(final int[] start, final int[] stop, final int[] step) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                int orank = start.length;<a name="line.560"></a>
+<span class="sourceLineNo">561</span><a name="line.561"></a>
+<span class="sourceLineNo">562</span>                if (stop.length != orank || step.length != orank) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                        throw new IllegalArgumentException("All arrays must be same length");<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                }<a name="line.564"></a>
+<span class="sourceLineNo">565</span><a name="line.565"></a>
+<span class="sourceLineNo">566</span>                Slice[] slice = new Slice[orank];<a name="line.566"></a>
+<span class="sourceLineNo">567</span><a name="line.567"></a>
+<span class="sourceLineNo">568</span>                for (int j = 0; j &lt; orank; j++) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                        slice[j] = new Slice(start[j], stop[j], step[j]);<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                }<a name="line.570"></a>
+<span class="sourceLineNo">571</span><a name="line.571"></a>
+<span class="sourceLineNo">572</span>                return slice;<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        }<a name="line.573"></a>
+<span class="sourceLineNo">574</span><a name="line.574"></a>
+<span class="sourceLineNo">575</span>        /**<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         * Converts string in a Slice array<a name="line.576"></a>
+<span class="sourceLineNo">577</span>         * <a name="line.577"></a>
+<span class="sourceLineNo">578</span>         * @param sliceString<a name="line.578"></a>
+<span class="sourceLineNo">579</span>         *            String of the Slice array<a name="line.579"></a>
+<span class="sourceLineNo">580</span>         * @return Slice array created from the given string<a name="line.580"></a>
+<span class="sourceLineNo">581</span>         */<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public static Slice[] convertFromString(String sliceString) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span><a name="line.583"></a>
+<span class="sourceLineNo">584</span>                String clean = sliceString.replace("[", "");<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                clean = clean.replace("]", "");<a name="line.585"></a>
+<span class="sourceLineNo">586</span><a name="line.586"></a>
+<span class="sourceLineNo">587</span>                String[] sub = clean.split(",");<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>                Slice[] slices = new Slice[sub.length];<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>                for (int i = 0; i &lt; sub.length; i++) {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        String s = sub[i];<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        Slice slice = new Slice();<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                        slices[i] = slice;<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>                        int idx0 = s.indexOf(":");<a name="line.597"></a>
+<span class="sourceLineNo">598</span><a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        int n = 0;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        if (idx0 == -1) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                                n = Integer.parseInt(s);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                                slice.setStart(n);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                                slice.setStop(n + 1);<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                                continue;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        } else if (idx0 != 0) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                                n = Integer.parseInt(s.substring(0, idx0));<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                        }<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                        slice.setStart(n);<a name="line.608"></a>
+<span class="sourceLineNo">609</span><a name="line.609"></a>
+<span class="sourceLineNo">610</span>                        idx0++;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                        int idx1 = s.indexOf(":", idx0);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        if (idx1 == -1) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                                String t = s.substring(idx0).trim();<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                                if (t.length() == 0)<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                                        continue;<a name="line.615"></a>
+<span class="sourceLineNo">616</span><a name="line.616"></a>
+<span class="sourceLineNo">617</span>                                slice.setStop(Integer.parseInt(t));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                                continue;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                        } else if (idx1 != idx0) {<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                                slice.setStop(Integer.parseInt(s.substring(idx0, idx1)));<a name="line.620"></a>
+<span class="sourceLineNo">621</span>                        }<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>                        String t = s.substring(idx1 + 1).trim();<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                        if (t.length() &gt; 0)<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                                slice.setStep(Integer.parseInt(t));<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                }<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>                return slices;<a name="line.628"></a>
+<span class="sourceLineNo">629</span>        }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>        /**<a name="line.631"></a>
+<span class="sourceLineNo">632</span>         * Creates a string representing the slice taken from given shape<a name="line.632"></a>
+<span class="sourceLineNo">633</span>         * <a name="line.633"></a>
+<span class="sourceLineNo">634</span>         * @param shape<a name="line.634"></a>
+<span class="sourceLineNo">635</span>         *            Array of Slices shapes<a name="line.635"></a>
+<span class="sourceLineNo">636</span>         * @param start<a name="line.636"></a>
+<span class="sourceLineNo">637</span>         *            Array of Slices starts<a name="line.637"></a>
+<span class="sourceLineNo">638</span>         * @param stop<a name="line.638"></a>
+<span class="sourceLineNo">639</span>         *            Array of Slices stops<a name="line.639"></a>
+<span class="sourceLineNo">640</span>         * @param step<a name="line.640"></a>
+<span class="sourceLineNo">641</span>         *            Array of Slices steps<a name="line.641"></a>
+<span class="sourceLineNo">642</span>         * @return String representation of the Slice<a name="line.642"></a>
+<span class="sourceLineNo">643</span>         */<a name="line.643"></a>
+<span class="sourceLineNo">644</span>        public static String createString(final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                final int rank = shape.length;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                if (rank == 0) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                        return "";<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                StringBuilder s = new StringBuilder();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                        int l = shape[i];<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                        int d = step == null ? 1 : step[i];<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                        int b = start == null ? (d &gt; 0 ? 0 : l - 1) : start[i];<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                        int e = stop == null ? (d &gt; 0 ? l : -1) : stop[i];<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>                        appendSliceToString(s, l, b, e, d);<a name="line.656"></a>
+<span class="sourceLineNo">657</span>                        s.append(',');<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                }<a name="line.658"></a>
+<span class="sourceLineNo">659</span><a name="line.659"></a>
+<span class="sourceLineNo">660</span>                return s.substring(0, s.length() - 1);<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        }<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>        /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>         * Creates a string representation of slices.<a name="line.664"></a>
+<span class="sourceLineNo">665</span>         * <a name="line.665"></a>
+<span class="sourceLineNo">666</span>         * @param slices<a name="line.666"></a>
+<span class="sourceLineNo">667</span>         *            Wanted Slices to put inside of the string representation<a name="line.667"></a>
+<span class="sourceLineNo">668</span>         * @return Return the string representation of the Slices entered.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>         */<a name="line.669"></a>
+<span class="sourceLineNo">670</span>        public static String createString(Slice... slices) {<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                if (slices == null || slices.length == 0) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        return "";<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                }<a name="line.673"></a>
+<span class="sourceLineNo">674</span><a name="line.674"></a>
+<span class="sourceLineNo">675</span>                StringBuilder t = new StringBuilder();<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                for (Slice s : slices) {<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        t.append(s != null ? s.toString() : ':');<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        t.append(',');<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                }<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>                return t.substring(0, t.length() - 1);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>}<a name="line.683"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceIterator.html
new file mode 100644
index 0000000..db649a4
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceIterator.html
@@ -0,0 +1,420 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Arrays;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**     <a name="line.18"></a>
+<span class="sourceLineNo">019</span> * The {@code SliceIterator} class is use to run over a Slice of a Dataset.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * <a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This is an Iterator thats allows the programmer to traverse the elements of a sliced Dataset and obtain the current position, the starts, steps,<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * shapes.<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Moreover, there is possibilities to set the start point to begin at the wanted position.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class SliceIterator extends IndexIterator {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        int[] shape;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        int isize;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        int endrank; // last shape index<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        int[] gap; // gaps in dataset<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        int imax; // maximum index in array<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        int[] start;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        int[] stop;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        int[] step;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        int[] sshape; // slice shape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        int[] pos; // position in dataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        int istep; // step in last index<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        SliceIterator() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * <a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * @param shape<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         *            Array of shapes of the Dataset<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param length<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         *            Length of entire data array<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @param sshape<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         *            Shape of the new dataset, i.e. slice<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        public SliceIterator(final int[] shape, final int length, final int[] sshape) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                this(shape, length, null, null, sshape, 1);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * <a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * @param shape<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         *            Array of shapes of the Dataset<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param length<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         *            Length of entire data array<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param start<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         *            Array of starts indexes, may be {@code null}<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * @param sshape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         *            Shape of the new dataset, i.e. slice<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] sshape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                this(shape, length, start, null, sshape, 1);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>         * <a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * @param shape<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         *            Array of shapes of the Dataset<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param length<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         *            Length of entire data array<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @param sshape<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         *            Shape of the new dataset, i.e. slice<a name="line.82"></a>
+<span class="sourceLineNo">083</span>         * @param isize<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         *            Number of elements in an item<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        public SliceIterator(final int[] shape, final int length, final int[] sshape, final int isize) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                this(shape, length, null, null, sshape, isize);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        /**<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * <a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @param shape<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         *            Array of shapes of the Dataset<a name="line.95"></a>
+<span class="sourceLineNo">096</span>         * @param length<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         *            Length of entire data array<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @param start<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         *            Array of starts indexes, may be {@code null}<a name="line.99"></a>
+<span class="sourceLineNo">100</span>         * @param sshape<a name="line.100"></a>
+<span class="sourceLineNo">101</span>         *            Shape of the new dataset, i.e. slice<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * @param isize<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         *            Number of elements in an item<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] sshape, final int isize) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                this(shape, length, start, null, sshape, isize);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>        /**<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * <a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * @param shape<a name="line.113"></a>
+<span class="sourceLineNo">114</span>         *            Array of shapes of the Dataset<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param length<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         *            Length of entire data array<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         * @param start<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         *            Array of starts indexes, may be {@code null}<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         * @param step<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         *            Array of steps, may be {@code null}, but can't be 0<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param sshape<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         *            shape of new dataset, i.e. slice<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] step, final int[] sshape) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                this(shape, length, start, step, sshape, 1);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>        /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * <a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * @param shape<a name="line.132"></a>
+<span class="sourceLineNo">133</span>         *            Array of shapes of the Dataset<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param length<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         *            Length of entire data array<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * @param slice<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         *            SliceND to iterate on<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public SliceIterator(final int[] shape, final int length, final SliceND slice) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                this(shape, length, slice.getStart(), slice.getStep(), slice.getShape(), 1);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>        /**<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.144"></a>
+<span class="sourceLineNo">145</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>         * <a name="line.146"></a>
+<span class="sourceLineNo">147</span>         * @param shape<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         *            Array of shapes of the Dataset<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @param length<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         *            Length of entire data array<a name="line.150"></a>
+<span class="sourceLineNo">151</span>         * @param isize<a name="line.151"></a>
+<span class="sourceLineNo">152</span>         *            Number of elements in an item<a name="line.152"></a>
+<span class="sourceLineNo">153</span>         * @param slice<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         *            SliceND to iterate on<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        public SliceIterator(final int[] shape, final int length, final int isize, final SliceND slice) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                this(shape, length, slice.getStart(), slice.getStep(), slice.getShape(), isize);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>        /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * Constructs an SliceIterator Object, which can iterate over sliced<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * Datasets elements, by default the start set to 0 and with a step of 1.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         * <a name="line.163"></a>
+<span class="sourceLineNo">164</span>         * @param shape<a name="line.164"></a>
+<span class="sourceLineNo">165</span>         *            Array of shapes of the Dataset<a name="line.165"></a>
+<span class="sourceLineNo">166</span>         * @param length<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         *            Length of entire data array<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @param start<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         *            Array of starts indexes, may be {@code null}<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         * @param step<a name="line.170"></a>
+<span class="sourceLineNo">171</span>         *            Array of steps, may be {@code null}, but can't be 0<a name="line.171"></a>
+<span class="sourceLineNo">172</span>         * @param sshape<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         *            Shape of the new dataset, i.e. slice<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @param isize<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         *            Number of elements in an item<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         */<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public SliceIterator(final int[] shape, final int length, final int[] start, final int[] step, final int[] sshape,<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        final int isize) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                this.isize = isize;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                int rank = shape.length;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                endrank = rank - 1;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                this.shape = shape;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                this.start = new int[rank];<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                this.sshape = sshape;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                if (step == null) {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                        this.step = new int[rank];<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                        Arrays.fill(this.step, 1);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                } else {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                        this.step = step;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>                if (rank == 0) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                        istep = isize;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                        imax = length * isize;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                        stop = new int[0];<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                        pos = new int[0];<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                        gap = null;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        istep = this.step[endrank] * isize;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        imax = length * isize;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>                        stop = new int[rank];<a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        gap = new int[endrank + 1];<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                        pos = new int[rank];<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        calcGap();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>                setStart(start);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>        void calcGap() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                int chunk = isize;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>                for (int i = endrank; i &gt;= 0; i--) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                        stop[i] = start[i] + sshape[i] * step[i];<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>                        if (step[i] &lt; 0) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                                stop[i]++; // adjust for -ve steps so later code has more succinct test<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        if (i &gt; 0) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                gap[i] = (shape[i] * step[i - 1] - sshape[i] * step[i]) * chunk;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                chunk *= shape[i];<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         * Set the starts indexes to new positions, {@code if null} the start index<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * is set by default to 0<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         * <a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @param newStart<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         *            Array of new starts indexes (prefix with zeros if necessary),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>         *            may be {@code null}<a name="line.232"></a>
+<span class="sourceLineNo">233</span>         */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        public void setStart(int... newStart) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                final int rank = shape.length;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                if (rank == 0) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        index = -istep;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        return;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>                if (newStart == null) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        for (int i = 0; i &lt; rank; i++) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                                start[i] = 0;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                } else if (newStart.length &gt; rank) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                        throw new IllegalArgumentException("Length of start array greater than rank");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                } else {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        int extra = rank - newStart.length;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        for (int i = 0; i &lt; extra; i++) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                start[i] = 0;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        for (int i = 0; i &lt; newStart.length; i++) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                                start[i + extra] = newStart[i];<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                reset();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                calcGap();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>        /**<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         * Reset the Iterator to the first Slice.<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         */<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        @Override<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        public void reset() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                if (shape.length == 0) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        index = -istep;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                } else {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                        // work out index of first position<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                        for (int i = 0; i &lt; shape.length; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                pos[i] = start[i];<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                        }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        pos[endrank] -= step[endrank];<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>                        index = pos[0];<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                        for (int j = 1; j &lt;= endrank; j++)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                index = index * shape[j] + pos[j];<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                        index *= isize;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>        /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>         * Returns {@code true} if there is an other element after the current<a name="line.283"></a>
+<span class="sourceLineNo">284</span>         * Slice.<a name="line.284"></a>
+<span class="sourceLineNo">285</span>         * <a name="line.285"></a>
+<span class="sourceLineNo">286</span>         * @return Returns {@true} if the iteration has more Slice, {@code false} in<a name="line.286"></a>
+<span class="sourceLineNo">287</span>         *         the other case<a name="line.287"></a>
+<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        public boolean hasNext() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>                // now move on one position in slice<a name="line.291"></a>
+<span class="sourceLineNo">292</span>                int j = endrank;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                for (; j &gt;= 0; j--) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        pos[j] += step[j];<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>                        if ((pos[j] &gt;= stop[j]) == (step[j] &gt; 0)) { <a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                pos[j] = start[j]; // stop index has been adjusted in code for -ve steps<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                index += gap[j];<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                        } else {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                break;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                        }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                if (j == -1 &amp;&amp; endrank &gt;= 0) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        return false;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>                index += istep;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                return index &lt; imax;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>        /**<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         * Returns an array of starts indexes.<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         * <a name="line.313"></a>
+<span class="sourceLineNo">314</span>         * @return Array of starts indexes<a name="line.314"></a>
+<span class="sourceLineNo">315</span>         */<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        public int[] getStart() {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                return start;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>        /**<a name="line.320"></a>
+<span class="sourceLineNo">321</span>         * Returns the current position of the iterator.<a name="line.321"></a>
+<span class="sourceLineNo">322</span>         * <a name="line.322"></a>
+<span class="sourceLineNo">323</span>         * @return Iterator current position<a name="line.323"></a>
+<span class="sourceLineNo">324</span>         */<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        @Override<a name="line.325"></a>
+<span class="sourceLineNo">326</span>        public int[] getPos() {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                return pos;<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        }<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>        /**<a name="line.330"></a>
+<span class="sourceLineNo">331</span>         * Returns an array of steps<a name="line.331"></a>
+<span class="sourceLineNo">332</span>         * <a name="line.332"></a>
+<span class="sourceLineNo">333</span>         * @return Array of steps<a name="line.333"></a>
+<span class="sourceLineNo">334</span>         */<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        public int[] getStep() {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                return step;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>        /**<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         * Returns an array of the Slices shapes.<a name="line.340"></a>
+<span class="sourceLineNo">341</span>         * <a name="line.341"></a>
+<span class="sourceLineNo">342</span>         * @return Array of shapes.<a name="line.342"></a>
+<span class="sourceLineNo">343</span>         */<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        public int[] getShape() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>                return sshape;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>}<a name="line.348"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceND.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceND.html
new file mode 100644
index 0000000..4ac3ce0
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceND.html
@@ -0,0 +1,638 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright (c) 2014, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.dataset;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.Arrays;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>/**     <a name="line.14"></a>
+<span class="sourceLineNo">015</span> * The {@code SliceND} class represents a slice through all dimensions of a multi-dimensional {@link org.eclipse.january.dataset.Dataset}.&lt;br&gt;&lt;br&gt;<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * A slice comprises a starting position array, a stopping position array (not included) and a stepping size array.&lt;br&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * If a maximum shape is specified, slicing past the original shape is supported for positive<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * steps otherwise it is ignored. With unlimited dimensions, extending past the original shape is only<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * allowed if the stopping value is given.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class SliceND {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private int[] lstart;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] lstop;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int[] lstep;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private transient int[] lshape; // latest shape<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private int[] oshape; // source or original shape<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        private int[] mshape; // max shape<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        private boolean expanded;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Construct a nD Slice for whole of shape.<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * <a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param shape<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public SliceND(final int[] shape) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                final int rank = shape.length;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                lstart = new int[rank];<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                lstop = shape.clone();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                lstep = new int[rank];<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                Arrays.fill(lstep, 1);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                lshape = shape.clone();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                oshape = shape.clone();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                mshape = oshape;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                expanded = false;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Construct a nD Slice from an array of 1D slices.<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * <a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param shape<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param slice<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *            Slice for each dimension of ND slice<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public SliceND(final int[] shape, Slice... slice) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                this(shape, null, slice);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * Construct a nD Slice from an array of 1D slices, if the maxShape is<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * {@code null}, it will be set to the maximum shape of the nD Slice.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * <a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @param shape<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param maxShape,<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         *            may be {@code null}<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param slice<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         *            Slice for each dimension of ND slice<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public SliceND(final int[] shape, final int[] maxShape, Slice... slice) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                this(shape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>                if (maxShape != null) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        initMaxShape(maxShape);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>                if (slice != null) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                        final int length = slice.length;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                        final int rank = shape.length;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        if (length &gt; rank) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                throw new IllegalArgumentException("More slices have been specified than rank of shape");<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                        for (int i = 0; i &lt; length; i++) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                                Slice s = slice[i];<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                                if (s != null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                        setSlice(i, s);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>        private void initMaxShape(int[] maxShape) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                final int rank = oshape.length;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                if (maxShape.length != rank) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        throw new IllegalArgumentException("Maximum shape must have same rank as shape");<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                mshape = maxShape.clone();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        int m = mshape[i];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; m &lt; oshape[i]) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                throw new IllegalArgumentException("Maximum shape must be greater than or equal to shape");<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * Construct a nD Slice from parameters, if the maxShape is {@code null}, it<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * will be set to the maximum shape of the nD Slice, the start will be set<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         * to 0, stop is by default equal to the entire size of the set, step is<a name="line.111"></a>
+<span class="sourceLineNo">112</span>         * defaultly set to 1.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>         * <a name="line.113"></a>
+<span class="sourceLineNo">114</span>         * @param shape<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param start<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         *            Array of starts points, may be {@code null}<a name="line.117"></a>
+<span class="sourceLineNo">118</span>         * @param stop<a name="line.118"></a>
+<span class="sourceLineNo">119</span>         *            Array of stops points, may be {@code null}<a name="line.119"></a>
+<span class="sourceLineNo">120</span>         * @param step<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         *            Array of steps, may be {@code null}<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        public SliceND(final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                this(shape, null, start, stop, step);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * Construct a nD Slice from parameters, if the maxShape is {@code null}, it<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * will be set to the maximum shape of the nD Slice, the start will be set<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         * to 0, stop is by default equal to the entire size of the set, step is<a name="line.130"></a>
+<span class="sourceLineNo">131</span>         * defaultly set to 1.<a name="line.131"></a>
+<span class="sourceLineNo">132</span>         * <a name="line.132"></a>
+<span class="sourceLineNo">133</span>         * @param shape<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         *            Shape of the dataset, see {@link ILazyDataset#getShape()}<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * @param maxShape<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         *            Array of maximals shapes, may be {@code null}<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param start<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         *            Array of starts points, may be {@code null}<a name="line.138"></a>
+<span class="sourceLineNo">139</span>         * @param stop<a name="line.139"></a>
+<span class="sourceLineNo">140</span>         *            Array of stops points, may be {@code null}<a name="line.140"></a>
+<span class="sourceLineNo">141</span>         * @param step<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         *            Array of steps, may be {@code null}<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         */<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        public SliceND(final int[] shape, final int[] maxShape, final int[] start, final int[] stop, final int[] step) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                // number of steps, or new shape, taken in each dimension is<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                // shape = (stop - start + step - 1) / step if step &gt; 0<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                // (stop - start + step + 1) / step if step &lt; 0<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                //<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                // thus the final index in each dimension is<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                // start + (shape-1)*step<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                int rank = shape.length;<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>                if (start == null) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        lstart = new int[rank];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                } else {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        lstart = start.clone();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                if (stop == null) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                        lstop = new int[rank];<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        lstop = stop.clone();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                if (step == null) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                        lstep = new int[rank];<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                        Arrays.fill(lstep, 1);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                } else {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                        lstep = step.clone();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>                if (lstart.length != rank || lstop.length != rank || lstep.length != rank) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        throw new IllegalArgumentException("No of indexes does not match data dimensions: you passed it start="<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                        + lstart.length + ", stop=" + lstop.length + ", step=" + lstep.length + ", and it needs " + rank);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>                lshape = new int[rank];<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                oshape = shape.clone();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                if (maxShape == null) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                        mshape = oshape;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                } else {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>                        initMaxShape(maxShape);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        internalSetSlice(i, start == null ? null : lstart[i], stop == null ? null : lstop[i], lstep[i]);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * Set slice for given dimension, if the start is {@code null} it will be<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         * set to 0, stop is by default equal to the entire size of the set.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * <a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @param i<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         *            dimension<a name="line.194"></a>
+<span class="sourceLineNo">195</span>         * @param start<a name="line.195"></a>
+<span class="sourceLineNo">196</span>         *            Start point, may be {@code null} to imply start of dimension<a name="line.196"></a>
+<span class="sourceLineNo">197</span>         * @param stop<a name="line.197"></a>
+<span class="sourceLineNo">198</span>         *            Stop point, may be {@code null} to imply end of dimension<a name="line.198"></a>
+<span class="sourceLineNo">199</span>         * @param step<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         *            Slice step<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         */<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        public void setSlice(int i, Integer start, Integer stop, int step) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                internalSetSlice(i, start, stop, step);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        /**<a name="line.206"></a>
+<span class="sourceLineNo">207</span>         * Set slice for given dimension, if the start is {@code null} it will be<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * set to 0, stop is by default equal to the entire size of the set.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         * <a name="line.209"></a>
+<span class="sourceLineNo">210</span>         * @param i<a name="line.210"></a>
+<span class="sourceLineNo">211</span>         *            dimension<a name="line.211"></a>
+<span class="sourceLineNo">212</span>         * @param start<a name="line.212"></a>
+<span class="sourceLineNo">213</span>         *            Start point, may be {@code null} to imply start of dimension<a name="line.213"></a>
+<span class="sourceLineNo">214</span>         * @param stop<a name="line.214"></a>
+<span class="sourceLineNo">215</span>         *            Stop point, may be {@code null} to imply end of dimension<a name="line.215"></a>
+<span class="sourceLineNo">216</span>         * @param step<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         *            Slice step<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         */<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        public void setSlice(int i, int start, int stop, int step) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                internalSetSlice(i, start, stop, step);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span>        /**<a name="line.223"></a>
+<span class="sourceLineNo">224</span>         * Set slice for given dimension.<a name="line.224"></a>
+<span class="sourceLineNo">225</span>         * <a name="line.225"></a>
+<span class="sourceLineNo">226</span>         * @param i<a name="line.226"></a>
+<span class="sourceLineNo">227</span>         *            Dimension<a name="line.227"></a>
+<span class="sourceLineNo">228</span>         * @param slice<a name="line.228"></a>
+<span class="sourceLineNo">229</span>         *            Slice with wanted properties to set<a name="line.229"></a>
+<span class="sourceLineNo">230</span>         * @since 2.0<a name="line.230"></a>
+<span class="sourceLineNo">231</span>         */<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        public void setSlice(int i, Slice slice) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                internalSetSlice(i, slice.getStart(), slice.getStop(), slice.getStep());<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * Set slice for given dimension, if the start is {@code null} it will be<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * set to 0, stop is by default equal to the entire size of the set.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         * <a name="line.239"></a>
+<span class="sourceLineNo">240</span>         * @param i<a name="line.240"></a>
+<span class="sourceLineNo">241</span>         *            dimension<a name="line.241"></a>
+<span class="sourceLineNo">242</span>         * @param start<a name="line.242"></a>
+<span class="sourceLineNo">243</span>         *            Start point, may be {@code null} to imply start of dimension<a name="line.243"></a>
+<span class="sourceLineNo">244</span>         * @param stop<a name="line.244"></a>
+<span class="sourceLineNo">245</span>         *            Stop point, may be {@code null} to imply end of dimension<a name="line.245"></a>
+<span class="sourceLineNo">246</span>         * @param step<a name="line.246"></a>
+<span class="sourceLineNo">247</span>         *            Slice step<a name="line.247"></a>
+<span class="sourceLineNo">248</span>         */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        private void internalSetSlice(int i, Integer start, Integer stop, int step) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                if (step == 0) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        throw new IllegalArgumentException("Step size must not be zero");<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                i = ShapeUtils.checkAxis(oshape.length, i);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                final int s = oshape[i];<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                final int m = mshape[i];<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                if (start == null) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        start = step &gt; 0 ? 0 : s - 1;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                } else if (start &lt; 0) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        start += s;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                if (step &gt; 0) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        if (start &lt; 0) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                start = 0;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        } else if (start &gt; s) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                                if (m == s) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>                                        start = s;<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                } else if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; start &gt; m) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                                        start = m;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>                        if (stop == null) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                if (start &gt;= s &amp;&amp; m == ILazyWriteableDataset.UNLIMITED) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                        throw new IllegalArgumentException(<a name="line.275"></a>
+<span class="sourceLineNo">276</span>                                                        "To extend past current dimension in unlimited case, a stop value must be specified");<a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                }<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                stop = s;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        } else if (stop &lt; 0) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                                stop += s;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        if (stop &lt; 0) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                                stop = 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                        } else if (stop &gt; s) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>                                if (m == s) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                        stop = s;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>                                } else if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; stop &gt; m) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                                        stop = m;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                                }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>                        if (start &gt;= stop) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                                if (start &lt; s || m == s) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                                        lstop[i] = start;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>                                } else { // override end<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                                        stop = start + step;<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                                        if (m != ILazyWriteableDataset.UNLIMITED &amp;&amp; stop &gt; m) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                                                stop = m;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                                        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                                        lstop[i] = stop;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                                }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        } else {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                                lstop[i] = stop;<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                        }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>                        if (lstop[i] &gt; s) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                                oshape[i] = lstop[i];<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                                expanded = true;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>                } else {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>                        if (start &lt; 0) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>                                start = -1;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                        } else if (start &gt;= s) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                                start = s - 1;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>                        if (stop == null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                                stop = -1;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        } else if (stop &lt; 0) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                                stop += s;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        if (stop &lt; -1) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                                stop = -1;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        } else if (stop &gt;= s) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                stop = s - 1;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                        }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        if (stop &gt;= start) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                                lstop[i] = start;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                        } else {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>                                lstop[i] = stop;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>                        }<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>                stop = lstop[i];<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                if (start == stop) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>                        lshape[i] = 0;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>                } else if (step &gt; 0) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>                        lshape[i] = Math.max(0, (stop - start - 1) / step + 1);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>                } else {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                        lshape[i] = Math.max(0, (stop - start + 1) / step + 1);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>                }<a name="line.341"></a>
+<span class="sourceLineNo">342</span>                lstart[i] = start;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                lstep[i] = step;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>        /**<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         * Returns an array of shapes of the source Dataset (this can change for<a name="line.347"></a>
+<span class="sourceLineNo">348</span>         * dynamic Datasets).<a name="line.348"></a>
+<span class="sourceLineNo">349</span>         * <a name="line.349"></a>
+<span class="sourceLineNo">350</span>         * @return shape of source Dataset<a name="line.350"></a>
+<span class="sourceLineNo">351</span>         */<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        public int[] getSourceShape() {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                return oshape;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>        /**<a name="line.356"></a>
+<span class="sourceLineNo">357</span>         * Returns an array of maximals shapes<a name="line.357"></a>
+<span class="sourceLineNo">358</span>         * <a name="line.358"></a>
+<span class="sourceLineNo">359</span>         * @return maximum shape<a name="line.359"></a>
+<span class="sourceLineNo">360</span>         */<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public int[] getMaxShape() {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return mshape;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>        /**<a name="line.365"></a>
+<span class="sourceLineNo">366</span>         * Returns {@code true} if the slice makes shape larger, else {@code false}.<a name="line.366"></a>
+<span class="sourceLineNo">367</span>         * <a name="line.367"></a>
+<span class="sourceLineNo">368</span>         * @return {@code true} if slice makes shape larger, {@code false} in the<a name="line.368"></a>
+<span class="sourceLineNo">369</span>         *         other case<a name="line.369"></a>
+<span class="sourceLineNo">370</span>         */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        public boolean isExpanded() {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return expanded;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>        /**<a name="line.375"></a>
+<span class="sourceLineNo">376</span>         * Returns an array of resulting shapes (this can change if the start, stop,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>         * step arrays are changed).<a name="line.377"></a>
+<span class="sourceLineNo">378</span>         * <a name="line.378"></a>
+<span class="sourceLineNo">379</span>         * @return resulting shape<a name="line.379"></a>
+<span class="sourceLineNo">380</span>         */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public int[] getShape() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return lshape;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>         * Returns an array of the starts values.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>         * <a name="line.387"></a>
+<span class="sourceLineNo">388</span>         * @return start values<a name="line.388"></a>
+<span class="sourceLineNo">389</span>         */<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        public int[] getStart() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>                return lstart;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>        /**<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * Returns an array of stops values.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * &lt;p&gt;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         * Note : stop values are clamped to -1 for &lt;b&gt;negative&lt;/b&gt; steps<a name="line.397"></a>
+<span class="sourceLineNo">398</span>         * &lt;/p&gt;<a name="line.398"></a>
+<span class="sourceLineNo">399</span>         * <a name="line.399"></a>
+<span class="sourceLineNo">400</span>         * @return stop values<a name="line.400"></a>
+<span class="sourceLineNo">401</span>         */<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        public int[] getStop() {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>                return lstop;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>        /**<a name="line.406"></a>
+<span class="sourceLineNo">407</span>         * Returns an array of the steps values.<a name="line.407"></a>
+<span class="sourceLineNo">408</span>         * <a name="line.408"></a>
+<span class="sourceLineNo">409</span>         * @return step values<a name="line.409"></a>
+<span class="sourceLineNo">410</span>         */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        public int[] getStep() {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return lstep;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>        /**<a name="line.415"></a>
+<span class="sourceLineNo">416</span>         * Returns {@code true} if all of originals shapes are covered by positive<a name="line.416"></a>
+<span class="sourceLineNo">417</span>         * steps slices, else {@code false}.<a name="line.417"></a>
+<span class="sourceLineNo">418</span>         * <a name="line.418"></a>
+<span class="sourceLineNo">419</span>         * @return {@code true} if all of originals shapes is covered by this slice<a name="line.419"></a>
+<span class="sourceLineNo">420</span>         *         with positive steps, {@code false} in the other case.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>         */<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        public boolean isAll() {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>                if (expanded) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>                        return false;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                }<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>                boolean allData = Arrays.equals(oshape, getShape());<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                if (allData) {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                        for (int i = 0; i &lt; lshape.length; i++) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                                if (lstep[i] &lt; 0) {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>                                        allData = false;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                                        break;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>                                }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>                        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>                }<a name="line.435"></a>
+<span class="sourceLineNo">436</span>                return allData;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>        /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>         * Flips the slice direction in given dimension, this means that slice<a name="line.440"></a>
+<span class="sourceLineNo">441</span>         * begins at previous end point, steps in the opposite direction, and<a name="line.441"></a>
+<span class="sourceLineNo">442</span>         * finishes at the previous start point.<a name="line.442"></a>
+<span class="sourceLineNo">443</span>         * <a name="line.443"></a>
+<span class="sourceLineNo">444</span>         * @param i<a name="line.444"></a>
+<span class="sourceLineNo">445</span>         *            dimension to flip<a name="line.445"></a>
+<span class="sourceLineNo">446</span>         */<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        public SliceND flip(int i) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                i = ShapeUtils.checkAxis(lshape.length, i);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>                int beg = lstart[i];<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                int end = lstop[i];<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                int step = lstep[i];<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                int del = lstep[i] &gt; 0 ? 1 : -1;<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>                int num = (end - beg - del) / step + 1; // number of steps<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                lstart[i] = beg + (num - 1) * step;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                lstop[i] = Math.max(beg - step, -1);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                lstep[i] = -step;<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>                return this;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>        /**<a name="line.463"></a>
+<span class="sourceLineNo">464</span>         * Flips slices directions in all dimensions, this means that all slices are<a name="line.464"></a>
+<span class="sourceLineNo">465</span>         * beginning at previous end point, steps are in the opposite direction, and<a name="line.465"></a>
+<span class="sourceLineNo">466</span>         * finishes are at the previous start point.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>         */<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        public SliceND flip() {<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                int orank = lshape.length;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                for (int i = 0; i &lt; orank; i++) {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>                        flip(i);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>                return this;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        }<a name="line.475"></a>
+<span class="sourceLineNo">476</span><a name="line.476"></a>
+<span class="sourceLineNo">477</span>        /**<a name="line.477"></a>
+<span class="sourceLineNo">478</span>         * Converts to a slice array all the Slices of the SliceND.<a name="line.478"></a>
+<span class="sourceLineNo">479</span>         * <a name="line.479"></a>
+<span class="sourceLineNo">480</span>         * @return a Slice array<a name="line.480"></a>
+<span class="sourceLineNo">481</span>         */<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        public Slice[] convertToSlice() {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                int orank = lshape.length;<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>                Slice[] slice = new Slice[orank];<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>                for (int j = 0; j &lt; orank; j++) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span>                        slice[j] = new Slice(lstart[j], lstop[j], lstep[j]);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>                return slice;<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>        /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>         * Creates a deep copy of the SliceND.<a name="line.495"></a>
+<span class="sourceLineNo">496</span>         * <a name="line.496"></a>
+<span class="sourceLineNo">497</span>         * @return New SliceND with the current SliceND properties<a name="line.497"></a>
+<span class="sourceLineNo">498</span>         */<a name="line.498"></a>
+<span class="sourceLineNo">499</span>        @Override<a name="line.499"></a>
+<span class="sourceLineNo">500</span>        public SliceND clone() {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                SliceND c = new SliceND(oshape);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                for (int i = 0; i &lt; lshape.length; i++) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        c.lstart[i] = lstart[i];<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        c.lstop[i] = lstop[i];<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                        c.lstep[i] = lstep[i];<a name="line.505"></a>
+<span class="sourceLineNo">506</span>                        c.lshape[i] = lshape[i];<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                }<a name="line.507"></a>
+<span class="sourceLineNo">508</span>                c.expanded = expanded;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>                return c;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>        /**<a name="line.512"></a>
+<span class="sourceLineNo">513</span>         * Returns a string construction of the sliceND with the python form.<a name="line.513"></a>
+<span class="sourceLineNo">514</span>         * <a name="line.514"></a>
+<span class="sourceLineNo">515</span>         * @return Constructed String of all Slices<a name="line.515"></a>
+<span class="sourceLineNo">516</span>         */<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        @Override<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        public String toString() {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>                final int rank = lshape.length;<a name="line.519"></a>
+<span class="sourceLineNo">520</span>                if (rank == 0) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>                        return "";<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                }<a name="line.522"></a>
+<span class="sourceLineNo">523</span>                StringBuilder s = new StringBuilder();<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                for (int i = 0; i &lt; rank; i++) {<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        Slice.appendSliceToString(s, oshape[i], lstart[i], lstop[i], lstep[i]);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                        s.append(',');<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>                return s.substring(0, s.length() - 1);<a name="line.529"></a>
+<span class="sourceLineNo">530</span>        }<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span>        /**<a name="line.532"></a>
+<span class="sourceLineNo">533</span>         * Creats SliceND from dataset.<a name="line.533"></a>
+<span class="sourceLineNo">534</span>         * <a name="line.534"></a>
+<span class="sourceLineNo">535</span>         * @param data<a name="line.535"></a>
+<span class="sourceLineNo">536</span>         *            ILazyDataset to treat<a name="line.536"></a>
+<span class="sourceLineNo">537</span>         * @param start<a name="line.537"></a>
+<span class="sourceLineNo">538</span>         *            Array of starts indexes<a name="line.538"></a>
+<span class="sourceLineNo">539</span>         * @param stop<a name="line.539"></a>
+<span class="sourceLineNo">540</span>         *            Array of stops indexes<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * @return Constructed SliceND<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         */<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        public static SliceND createSlice(ILazyDataset data, int[] start, int[] stop) {<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                return createSlice(data, start, stop, null);<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span>        /**<a name="line.547"></a>
+<span class="sourceLineNo">548</span>         * Creating SliceND from dataset.<a name="line.548"></a>
+<span class="sourceLineNo">549</span>         * <a name="line.549"></a>
+<span class="sourceLineNo">550</span>         * @param data<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         *            ILazyDataset to treat<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         * @param start<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         *            Array of starts indexes<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param stop<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         *            Array of stops indexes<a name="line.555"></a>
+<span class="sourceLineNo">556</span>         * @param step<a name="line.556"></a>
+<span class="sourceLineNo">557</span>         *            Array of steps<a name="line.557"></a>
+<span class="sourceLineNo">558</span>         * @return Constructed SliceND<a name="line.558"></a>
+<span class="sourceLineNo">559</span>         */<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        public static SliceND createSlice(ILazyDataset data, int[] start, int[] stop, int[] step) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                if (data instanceof IDynamicDataset) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                        return new SliceND(data.getShape(), ((IDynamicDataset) data).getMaxShape(), start, stop, step);<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                }<a name="line.563"></a>
+<span class="sourceLineNo">564</span>                return new SliceND(data.getShape(), start, stop, step);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>}<a name="line.566"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceNDIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceNDIterator.html
new file mode 100644
index 0000000..6ba00c0
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/SliceNDIterator.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2015, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * &lt;p&gt;Class to provide slice iteration through a dataset&lt;/p&gt;<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * &lt;p&gt;It allows a number of axes to be omitted and iterates over<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * the axes left over.&lt;/p&gt;<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class SliceNDIterator extends IndexIterator {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        final private int[] shape;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        final private int[] start;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        final private int[] stop;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        final private int[] step;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        final private int endrank;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        final private boolean[] omit; // axes to miss out<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * position in source dataset<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        final private int[] pos;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        final private int[] end;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private boolean once;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        private SliceND cSlice; // current slice<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        <a name="line.37"></a>
+<span class="sourceLineNo">038</span>        private int sRank; // number of dimensions used (i.e. not missing)<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        final private SliceND oSlice; // omitted source slice<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        final private SliceND sSlice; // shortened slice<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        final private int[] sStart; // shortened position<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        final private int[] sStop; // shortened end<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        private SliceND dSlice; // destination slice<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        private int[] dStart;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        private int[] dStop;<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Constructor for an iterator that misses out several axes<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param slice<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param axes missing axes<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        public SliceNDIterator(SliceND slice, int... axes) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                cSlice = slice.clone();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                int[] sShape = cSlice.getSourceShape();<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                shape = cSlice.getShape().clone();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                start = cSlice.getStart();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                stop  = cSlice.getStop();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                step  = cSlice.getStep();<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                for (int s : step) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        if (s &lt; 0) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                                throw new UnsupportedOperationException("Negative steps not implemented");<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                        }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                }<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                int rank = shape.length;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                endrank = rank - 1;<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>                omit = new boolean[rank];<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                dSlice = new SliceND(shape);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                dStart = dSlice.getStart();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                dStop  = dSlice.getStop();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                sRank = rank;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                if (axes != null) {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                        for (int a : axes) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                a =  ShapeUtils.checkAxis(rank, a);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                if (a &gt;= 0 &amp;&amp; a &lt;= endrank) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                        sRank--;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                                        omit[a] = true;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                                        shape[a] = 1;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                                } else if (a &gt; endrank) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                                        throw new IllegalArgumentException("Specified axis exceeds dataset rank");<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                        }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>                cSlice = cSlice.clone();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                pos = cSlice.getStart();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                end = cSlice.getStop();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (sRank == rank) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        sStart = pos;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                        sStop = null;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                        oSlice = null;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        sSlice = cSlice;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                } else {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        int[] dShape = dSlice.getShape();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                        int[] lShape = new int[sRank]; // inner shape<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        int[] oShape = new int[rank - sRank]; // output shape<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        for (int i = 0, j = 0, k = 0; i &lt; rank; i++) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                                if (omit[i]) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                                        oShape[j++] = sShape[i];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                                } else {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                                        lShape[k++] = sShape[i];<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                                        dShape[i] = 1;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                                }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        sSlice = new SliceND(lShape);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        sStart = sSlice.getStart();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                        sStop = sSlice.getStop();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        oSlice = new SliceND(oShape);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                        for (int i = 0, j = 0, k = 0; i &lt; rank; i++) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                                if (omit[i]) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                        oSlice.setSlice(j++, start[i], stop[i], step[i]);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                } else {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        sSlice.setSlice(k++, start[i], stop[i], step[i]);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                <a name="line.120"></a>
+<span class="sourceLineNo">121</span>                reset();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>        @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        public boolean hasNext() {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                // now move on one position<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                if (once) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        once = false;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return true;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                int k = sRank - 1;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        if (omit[j]) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                                continue;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                        pos[j] += step[j];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        end[j] = pos[j] + step[j];<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        dStart[j]++;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        dStop[j]++;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        if (pos[j] &gt;= stop[j]) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                                pos[j] = start[j];<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                                end[j] = pos[j] + step[j];<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                                dStart[j] = 0;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                dStop[j] = 1;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                if (sStop != null) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                        sStart[k] = pos[j];<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                        sStop[k] = end[j];<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        k--;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        } else {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                if (sStop != null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                        sStart[k] = pos[j];<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                        sStop[k] = end[j];<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                        k--;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                return true;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                return false;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>        @Override<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        public int[] getPos() {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                return pos;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>        /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * Get omitted part of source slice which never changes<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         * @return slice (can be null)<a name="line.169"></a>
+<span class="sourceLineNo">170</span>         */<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        public SliceND getOmittedSlice() {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                return oSlice;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>        /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>         * Get output or destination slice<a name="line.176"></a>
+<span class="sourceLineNo">177</span>         * @return slice<a name="line.177"></a>
+<span class="sourceLineNo">178</span>         */<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public SliceND getOutputSlice() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return dSlice;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         * Get current slice<a name="line.184"></a>
+<span class="sourceLineNo">185</span>         * @return slice<a name="line.185"></a>
+<span class="sourceLineNo">186</span>         */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public SliceND getCurrentSlice() {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                return cSlice;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>        /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * Shortened position where axes are omitted<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @return used position<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        public int[] getUsedPos() {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                return sStart;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>        /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>         * Shortened slice where axes are omitted<a name="line.200"></a>
+<span class="sourceLineNo">201</span>         * @return used slice<a name="line.201"></a>
+<span class="sourceLineNo">202</span>         */<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        public SliceND getUsedSlice() {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                return sSlice;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>        /**<a name="line.207"></a>
+<span class="sourceLineNo">208</span>         * @return omit array - array where true means miss out<a name="line.208"></a>
+<span class="sourceLineNo">209</span>         */<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        public boolean[] getOmit() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                return omit;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        }<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>        @Override<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        public void reset() {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                for (int i = 0, k = 0; i &lt;= endrank; i++) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        int b = start[i];<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                        int d = step[i];<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                        if (!omit[i]) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>                                cSlice.setSlice(i, b, b + d, d);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                                dStart[i] = 0;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                                dStop[i] = 1;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                                if (sStop != null) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                                        sSlice.setSlice(k++, b, b + d, d);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                                }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                        } else {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                                cSlice.setSlice(i, b, end[i], d);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                        }<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>                int j = 0;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>                for (; j &lt;= endrank; j++) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                        if (!omit[j])<a name="line.233"></a>
+<span class="sourceLineNo">234</span>                                break;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>                }<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                if (j &gt; endrank) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                        once = true;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                        return;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>                }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>                if (omit[endrank]) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>                        pos[endrank] = start[endrank];<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                        for (int i = endrank - 1; i &gt;= 0; i--) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                                if (!omit[i]) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                                        end[i] = pos[i];<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                                        pos[i] -= step[i];<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                                        dStart[i]--;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                                        dStop[i]--;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                                        break;<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                } else {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        end[endrank] = pos[endrank];<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                        pos[endrank] -= step[endrank];<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        dStart[endrank]--;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                        dStop[endrank]--;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>                }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>                if (sStart != pos) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>                        for (int i = 0, k = 0; i &lt;= endrank; i++) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>                                if (!omit[i]) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                                        sStart[k++] = pos[i];<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                                }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        }<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>        @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        public int[] getShape() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                return shape;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>}<a name="line.272"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Stats.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Stats.html
new file mode 100644
index 0000000..17791f6
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/Stats.html
@@ -0,0 +1,2028 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.lang.ref.SoftReference;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.ArrayList;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Collections;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.HashMap;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Map;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeMap;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.math3.complex.Complex;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.math3.stat.descriptive.moment.Kurtosis;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.math3.stat.descriptive.moment.Skewness;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.metadata.Dirtiable;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.metadata.MetadataType;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>/**<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * Statistics class<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * <a name="line.32"></a>
+<span class="sourceLineNo">033</span> * TODO Where is mode? http://en.wikipedia.org/wiki/Mode_(statistics)<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * <a name="line.34"></a>
+<span class="sourceLineNo">035</span> */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>public class Stats {<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>        private static class ReferencedDataset extends SoftReference&lt;Dataset&gt; {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                public ReferencedDataset(Dataset d) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                        super(d);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        private static class QStatisticsImpl&lt;T&gt; implements MetadataType {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                private static final long serialVersionUID = -3296671666463190388L;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                final static Double Q1 = 0.25;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                final static Double Q2 = 0.5;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                final static Double Q3 = 0.75;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                Map&lt;Double, T&gt; qmap = new HashMap&lt;Double, T&gt;();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                transient Map&lt;Integer, Map&lt;Double, ReferencedDataset&gt;&gt; aqmap = new HashMap&lt;Integer, Map&lt;Double, ReferencedDataset&gt;&gt;();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                transient ReferencedDataset s; // store 0th element<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                transient Map&lt;Integer, ReferencedDataset&gt; smap = new HashMap&lt;&gt;();<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>                @Dirtiable<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                private boolean isDirty = true;<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>                @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                public QStatisticsImpl&lt;T&gt; clone() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                        return new QStatisticsImpl&lt;T&gt;(this);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>                public QStatisticsImpl() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>                private QStatisticsImpl(QStatisticsImpl&lt;T&gt; qstats) {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        if (qstats.s != null &amp;&amp; qstats.s.get() != null) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                                s = new ReferencedDataset(qstats.s.get().getView(false));<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        qmap.putAll(qstats.qmap);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                        for (Integer i : qstats.aqmap.keySet()) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                                aqmap.put(i, new HashMap&lt;&gt;(qstats.aqmap.get(i)));<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        smap.putAll(qstats.smap);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        isDirty = qstats.isDirty;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>                public void setQuantile(double q, T v) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                        qmap.put(q, v);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>                public T getQuantile(double q) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                        return qmap.get(q);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>                private Map&lt;Double, ReferencedDataset&gt; getMap(int axis) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                        Map&lt;Double, ReferencedDataset&gt; qm = aqmap.get(axis);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                        if (qm == null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                                qm = new HashMap&lt;&gt;();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                                aqmap.put(axis, qm);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        return qm;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>                public void setQuantile(int axis, double q, Dataset v) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                        Map&lt;Double, ReferencedDataset&gt; qm = getMap(axis);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        qm.put(q, new ReferencedDataset(v));<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>                public Dataset getQuantile(int axis, double q) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        Map&lt;Double, ReferencedDataset&gt; qm = getMap(axis);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        ReferencedDataset rd = qm.get(q);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        return rd == null ? null : rd.get();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>                Dataset getSortedDataset(int axis) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                        return smap.containsKey(axis) ? smap.get(axis).get() : null;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>                void setSortedDataset(int axis, Dataset v) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        smap.put(axis, new ReferencedDataset(v));<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        // calculates statistics and returns sorted dataset (0th element if compound)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        private static QStatisticsImpl&lt;?&gt; calcQuartileStats(final Dataset a) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                Dataset s = null;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                final int is = a.getElementsPerItem();<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>                if (is == 1) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                        s = DatasetUtils.sort(a);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        QStatisticsImpl&lt;Double&gt; qstats = new QStatisticsImpl&lt;Double&gt;();<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                        qstats.setQuantile(QStatisticsImpl.Q1, pQuantile(s, QStatisticsImpl.Q1));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                        qstats.setQuantile(QStatisticsImpl.Q2, pQuantile(s, QStatisticsImpl.Q2));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                        qstats.setQuantile(QStatisticsImpl.Q3, pQuantile(s, QStatisticsImpl.Q3));<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                        qstats.s = new ReferencedDataset(s);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        return qstats;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>                QStatisticsImpl&lt;double[]&gt; qstats = new QStatisticsImpl&lt;double[]&gt;();<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>                Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                double[] q1 = new double[is];<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                double[] q2 = new double[is];<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                double[] q3 = new double[is];<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                qstats.setQuantile(QStatisticsImpl.Q1, q1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                qstats.setQuantile(QStatisticsImpl.Q2, q2);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                qstats.setQuantile(QStatisticsImpl.Q3, q3);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                for (int j = 0; j &lt; is; j++) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                        ((CompoundDataset) a).copyElements(w, j);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        w.sort(null);<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>                        q1[j] = pQuantile(w, QStatisticsImpl.Q1);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        q2[j] = pQuantile(w, QStatisticsImpl.Q2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                        q3[j] = pQuantile(w, QStatisticsImpl.Q3);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        if (j == 0)<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                s = w.clone();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                qstats.s = new ReferencedDataset(s);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>                return qstats;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>        static private QStatisticsImpl&lt;?&gt; getQStatistics(final Dataset a) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                QStatisticsImpl&lt;?&gt; m = a.getFirstMetadata(QStatisticsImpl.class);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                if (m == null || m.isDirty) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                        m = calcQuartileStats(a);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        a.setMetadata(m);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                return m;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>        static private QStatisticsImpl&lt;?&gt; getQStatistics(final Dataset a, final int axis) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                final int is = a.getElementsPerItem();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                QStatisticsImpl&lt;?&gt; qstats = a.getFirstMetadata(QStatisticsImpl.class);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>                if (qstats == null || qstats.isDirty) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        if (is == 1) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                                qstats = new QStatisticsImpl&lt;Double&gt;();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        } else {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                qstats = new QStatisticsImpl&lt;double[]&gt;();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                        }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        a.setMetadata(qstats);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>                if (qstats.getQuantile(axis, QStatisticsImpl.Q2) == null) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                        if (is == 1) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>                                Dataset s = DatasetUtils.sort(a, axis);<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q1, pQuantile(s, axis, QStatisticsImpl.Q1));<a name="line.181"></a>
+<span class="sourceLineNo">182</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q2, pQuantile(s, axis, QStatisticsImpl.Q2));<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q3, pQuantile(s, axis, QStatisticsImpl.Q3));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>                                qstats.setSortedDataset(axis, s);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                        } else {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>                                Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.186"></a>
+<span class="sourceLineNo">187</span>                                CompoundDoubleDataset q1 = null, q2 = null, q3 = null;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>                                        ((CompoundDataset) a).copyElements(w, j);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                                        w.sort(axis);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        <a name="line.191"></a>
+<span class="sourceLineNo">192</span>                                        final Dataset c = pQuantile(w, axis, QStatisticsImpl.Q1);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                                        if (j == 0) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                                                q1 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>                                                q2 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                                                q3 = DatasetFactory.zeros(is, CompoundDoubleDataset.class, c.getShapeRef());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>                                        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                                        q1.setElements(c, j);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        <a name="line.199"></a>
+<span class="sourceLineNo">200</span>                                        q2.setElements(pQuantile(w, axis, QStatisticsImpl.Q2), j);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        <a name="line.201"></a>
+<span class="sourceLineNo">202</span>                                        q3.setElements(pQuantile(w, axis, QStatisticsImpl.Q3), j);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q1, q1);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q2, q2);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                qstats.setQuantile(axis, QStatisticsImpl.Q3, q3);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>                return qstats;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>        // process a sorted dataset<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        private static double pQuantile(final Dataset s, final double q) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>                double f = (s.getSize() - 1) * q; // fraction of sample number<a name="line.215"></a>
+<span class="sourceLineNo">216</span>                if (f &lt; 0)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                        return Double.NaN;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                int qpt = (int) Math.floor(f); // quantile point<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                f -= qpt;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>                double quantile = s.getElementDoubleAbs(qpt);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                if (f &gt; 0) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                        quantile = (1-f)*quantile + f*s.getElementDoubleAbs(qpt+1);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>                }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                return quantile;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>        // process a sorted dataset and returns a double or compound double dataset<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        private static Dataset pQuantile(final Dataset s, final int axis, final double q) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                final int rank = s.getRank();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                final int is = s.getElementsPerItem();<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                int[] oshape = s.getShape();<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>                double f = (oshape[axis] - 1) * q; // fraction of sample number<a name="line.235"></a>
+<span class="sourceLineNo">236</span>                int qpt = (int) Math.floor(f); // quantile point<a name="line.236"></a>
+<span class="sourceLineNo">237</span>                f -= qpt;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>                oshape[axis] = 1;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>                int[] qshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                Dataset qds = DatasetFactory.zeros(is, CompoundDoubleDataset.class, qshape);<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>                IndexIterator qiter = qds.getIterator(true);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>                int[] qpos = qiter.getPos();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>                int[] spos = oshape;<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>                while (qiter.hasNext()) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                        int i = 0;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>                        for (; i &lt; axis; i++) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>                                spos[i] = qpos[i];<a name="line.250"></a>
+<span class="sourceLineNo">251</span>                        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>                        spos[i++] = qpt;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                        for (; i &lt; rank; i++) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                                spos[i] = qpos[i-1];<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                        }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>                        Object obj = s.getObject(spos);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                        qds.set(obj, qpos);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>                if (f &gt; 0) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>                        qiter = qds.getIterator(true);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                        qpos = qiter.getPos();<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                        qpt++;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>                        Dataset rds = DatasetFactory.zeros(is, CompoundDoubleDataset.class, qshape);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>                        <a name="line.266"></a>
+<span class="sourceLineNo">267</span>                        while (qiter.hasNext()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                                int i = 0;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                                for (; i &lt; axis; i++) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>                                        spos[i] = qpos[i];<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                                }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>                                spos[i++] = qpt;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                                for (; i &lt; rank; i++) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                                        spos[i] = qpos[i-1];<a name="line.274"></a>
+<span class="sourceLineNo">275</span>                                }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>                                Object obj = s.getObject(spos);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                                rds.set(obj, qpos);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>                        rds.imultiply(f);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>                        qds.imultiply(1-f);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>                        qds.iadd(rds);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>                return qds;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>        /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span>         * Calculate quantile of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.289"></a>
+<span class="sourceLineNo">290</span>         * @param a<a name="line.290"></a>
+<span class="sourceLineNo">291</span>         * @param q<a name="line.291"></a>
+<span class="sourceLineNo">292</span>         * @return point at which CDF has value q<a name="line.292"></a>
+<span class="sourceLineNo">293</span>         */<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        @SuppressWarnings("unchecked")<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        public static double quantile(final Dataset a, final double q) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>                if (q &lt; 0 || q &gt; 1) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>                        throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.297"></a>
+<span class="sourceLineNo">298</span>                }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>                Double qv = qs.getQuantile(q);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>                if (qv == null) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>                        qv = pQuantile(qs.s.get(), q);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>                        qs.setQuantile(q, qv);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                }<a name="line.304"></a>
+<span class="sourceLineNo">305</span>                return qv;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>        /**<a name="line.308"></a>
+<span class="sourceLineNo">309</span>         * Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.309"></a>
+<span class="sourceLineNo">310</span>         * @param a<a name="line.310"></a>
+<span class="sourceLineNo">311</span>         * @param values<a name="line.311"></a>
+<span class="sourceLineNo">312</span>         * @return points at which CDF has given values<a name="line.312"></a>
+<span class="sourceLineNo">313</span>         */<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        @SuppressWarnings("unchecked")<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        public static double[] quantile(final Dataset a, final double... values) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>                final double[] points  = new double[values.length];<a name="line.316"></a>
+<span class="sourceLineNo">317</span>                QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>                for (int i = 0; i &lt; points.length; i++) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>                        final double q = values[i];<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                        if (q &lt; 0 || q &gt; 1) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                                throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                        }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>                        Double qv = qs.getQuantile(q);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>                        if (qv == null) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>                                qv = pQuantile(qs.s.get(), q);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>                                qs.setQuantile(q, qv);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>                        }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>                        points[i] = qv;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>                }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>                return points;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        }<a name="line.332"></a>
+<span class="sourceLineNo">333</span><a name="line.333"></a>
+<span class="sourceLineNo">334</span>        /**<a name="line.334"></a>
+<span class="sourceLineNo">335</span>         * Calculate quantiles of dataset which is defined as the inverse of the cumulative distribution function (CDF)<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @param a<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @param axis<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         * @param values<a name="line.338"></a>
+<span class="sourceLineNo">339</span>         * @return points at which CDF has given values<a name="line.339"></a>
+<span class="sourceLineNo">340</span>         */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        @SuppressWarnings({ "unchecked" })<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        public static Dataset[] quantile(final Dataset a, int axis, final double... values) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>                final Dataset[] points  = new Dataset[values.length];<a name="line.343"></a>
+<span class="sourceLineNo">344</span>                final int is = a.getElementsPerItem();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>                axis = a.checkAxis(axis);<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>                if (is == 1) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>                        QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a, axis);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                        for (int i = 0; i &lt; points.length; i++) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>                                final double q = values[i];<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                                if (q &lt; 0 || q &gt; 1) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>                                        throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.352"></a>
+<span class="sourceLineNo">353</span>                                }<a name="line.353"></a>
+<span class="sourceLineNo">354</span>                                Dataset qv = qs.getQuantile(axis, q);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>                                if (qv == null) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>                                        qv = pQuantile(qs.getSortedDataset(axis), axis, q);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                                        qs.setQuantile(axis, q, qv);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>                                }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                                points[i] = qv;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>                        }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                } else {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                        QStatisticsImpl&lt;double[]&gt; qs = (QStatisticsImpl&lt;double[]&gt;) getQStatistics(a);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>                        Dataset w = DatasetFactory.zeros(1, a.getClass(), a.getShapeRef());<a name="line.363"></a>
+<span class="sourceLineNo">364</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>                                boolean copied = false;<a name="line.365"></a>
+<span class="sourceLineNo">366</span><a name="line.366"></a>
+<span class="sourceLineNo">367</span>                                for (int i = 0; i &lt; points.length; i++) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>                                        final double q = values[i];<a name="line.368"></a>
+<span class="sourceLineNo">369</span>                                        if (q &lt; 0 || q &gt; 1) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>                                                throw new IllegalArgumentException("Quantile requested is outside [0,1]");<a name="line.370"></a>
+<span class="sourceLineNo">371</span>                                        }<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                                        Dataset qv = qs.getQuantile(axis, q);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                                        if (qv == null) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                                                if (!copied) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>                                                        copied = true;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>                                                        ((CompoundDataset) a).copyElements(w, j);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                                                        w.sort(axis);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                                                }<a name="line.378"></a>
+<span class="sourceLineNo">379</span>                                                qv = pQuantile(w, axis, q);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>                                                qs.setQuantile(axis, q, qv);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>                                                if (j == 0) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                                                        points[i] = DatasetFactory.zeros(is, qv.getClass(), qv.getShapeRef());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>                                                }<a name="line.383"></a>
+<span class="sourceLineNo">384</span>                                                ((CompoundDoubleDataset) points[i]).setElements(qv, j);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>                                        }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>                                }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                        }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>                }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>                return points;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>        /**<a name="line.393"></a>
+<span class="sourceLineNo">394</span>         * @param a dataset<a name="line.394"></a>
+<span class="sourceLineNo">395</span>         * @param axis<a name="line.395"></a>
+<span class="sourceLineNo">396</span>         * @return median<a name="line.396"></a>
+<span class="sourceLineNo">397</span>         */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        public static Dataset median(final Dataset a, int axis) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>                axis = a.checkAxis(axis);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>                return getQStatistics(a, axis).getQuantile(axis, QStatisticsImpl.Q2);<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>        /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span>         * @param a dataset<a name="line.404"></a>
+<span class="sourceLineNo">405</span>         * @return median<a name="line.405"></a>
+<span class="sourceLineNo">406</span>         */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        public static Object median(final Dataset a) {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>                return getQStatistics(a).getQuantile(QStatisticsImpl.Q2);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>        /**<a name="line.411"></a>
+<span class="sourceLineNo">412</span>         * Interquartile range: Q3 - Q1<a name="line.412"></a>
+<span class="sourceLineNo">413</span>         * @param a<a name="line.413"></a>
+<span class="sourceLineNo">414</span>         * @return range<a name="line.414"></a>
+<span class="sourceLineNo">415</span>         */<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        @SuppressWarnings("unchecked")<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        public static Object iqr(final Dataset a) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>                final int is = a.getElementsPerItem();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>                if (is == 1) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>                        QStatisticsImpl&lt;Double&gt; qs = (QStatisticsImpl&lt;Double&gt;) getQStatistics(a);<a name="line.420"></a>
+<span class="sourceLineNo">421</span>                        return qs.getQuantile(QStatisticsImpl.Q3) - qs.getQuantile(QStatisticsImpl.Q1);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>                QStatisticsImpl&lt;double[]&gt; qs = (QStatisticsImpl&lt;double[]&gt;) getQStatistics(a);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>                double[] q1 = (double[]) qs.getQuantile(QStatisticsImpl.Q1);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>                double[] q3 = ((double[]) qs.getQuantile(QStatisticsImpl.Q3)).clone();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                for (int j = 0; j &lt; is; j++) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>                        q3[j] -= q1[j];<a name="line.428"></a>
+<span class="sourceLineNo">429</span>                }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>                return q3;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>        /**<a name="line.433"></a>
+<span class="sourceLineNo">434</span>         * Interquartile range: Q3 - Q1<a name="line.434"></a>
+<span class="sourceLineNo">435</span>         * @param a<a name="line.435"></a>
+<span class="sourceLineNo">436</span>         * @param axis<a name="line.436"></a>
+<span class="sourceLineNo">437</span>         * @return range<a name="line.437"></a>
+<span class="sourceLineNo">438</span>         */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        public static Dataset iqr(final Dataset a, int axis) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>                axis = a.checkAxis(axis);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>                QStatisticsImpl&lt;?&gt; qs = getQStatistics(a, axis);<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                Dataset q3 = qs.getQuantile(axis, QStatisticsImpl.Q3);<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>                return Maths.subtract(q3, qs.getQuantile(axis, QStatisticsImpl.Q1));<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>        static private HigherStatisticsImpl&lt;?&gt; getHigherStatistic(final Dataset a, boolean[] ignoreInvalids) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>                boolean ignoreNaNs = false;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>                boolean ignoreInfs = false;<a name="line.449"></a>
+<span class="sourceLineNo">450</span>                if (a.hasFloatingPointElements()) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>                }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>                HigherStatisticsImpl&lt;?&gt; stats = a.getFirstMetadata(HigherStatisticsImpl.class);<a name="line.455"></a>
+<span class="sourceLineNo">456</span>                if (stats == null || stats.isDirty) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                        stats = calculateHigherMoments(a, ignoreNaNs, ignoreInfs);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>                        a.setMetadata(stats);<a name="line.458"></a>
+<span class="sourceLineNo">459</span>                }<a name="line.459"></a>
+<span class="sourceLineNo">460</span>        <a name="line.460"></a>
+<span class="sourceLineNo">461</span>                return stats;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>        static private HigherStatisticsImpl&lt;?&gt; getHigherStatistic(final Dataset a, final boolean[] ignoreInvalids, final int axis) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>                boolean ignoreNaNs = false;<a name="line.465"></a>
+<span class="sourceLineNo">466</span>                boolean ignoreInfs = false;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                if (a.hasFloatingPointElements()) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.469"></a>
+<span class="sourceLineNo">470</span>                }<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        <a name="line.471"></a>
+<span class="sourceLineNo">472</span>                HigherStatisticsImpl&lt;?&gt; stats = a.getFirstMetadata(HigherStatisticsImpl.class);<a name="line.472"></a>
+<span class="sourceLineNo">473</span>                if (stats == null || stats.getSkewness(axis) == null || stats.isDirty) {<a name="line.473"></a>
+<span class="sourceLineNo">474</span>                        stats = calculateHigherMoments(a, ignoreNaNs, ignoreInfs, axis);<a name="line.474"></a>
+<span class="sourceLineNo">475</span>                        a.setMetadata(stats);<a name="line.475"></a>
+<span class="sourceLineNo">476</span>                }<a name="line.476"></a>
+<span class="sourceLineNo">477</span>        <a name="line.477"></a>
+<span class="sourceLineNo">478</span>                return stats;<a name="line.478"></a>
+<span class="sourceLineNo">479</span>        }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>        private static class HigherStatisticsImpl&lt;T&gt; implements MetadataType {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                private static final long serialVersionUID = -6587974784104116792L;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>                T skewness;<a name="line.483"></a>
+<span class="sourceLineNo">484</span>                T kurtosis;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>                transient Map&lt;Integer, ReferencedDataset&gt; smap = new HashMap&lt;&gt;();<a name="line.485"></a>
+<span class="sourceLineNo">486</span>                transient Map&lt;Integer, ReferencedDataset&gt; kmap = new HashMap&lt;&gt;();<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>                @Dirtiable<a name="line.488"></a>
+<span class="sourceLineNo">489</span>                private boolean isDirty = true;<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>                @Override<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                public HigherStatisticsImpl&lt;T&gt; clone() {<a name="line.492"></a>
+<span class="sourceLineNo">493</span>                        return new HigherStatisticsImpl&lt;&gt;(this);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>                }<a name="line.494"></a>
+<span class="sourceLineNo">495</span><a name="line.495"></a>
+<span class="sourceLineNo">496</span>                public HigherStatisticsImpl() {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                }<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span>                private HigherStatisticsImpl(HigherStatisticsImpl&lt;T&gt; hstats) {<a name="line.499"></a>
+<span class="sourceLineNo">500</span>                        skewness = hstats.skewness;<a name="line.500"></a>
+<span class="sourceLineNo">501</span>                        kurtosis = hstats.kurtosis;<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                        smap.putAll(hstats.smap);<a name="line.502"></a>
+<span class="sourceLineNo">503</span>                        kmap.putAll(hstats.kmap);<a name="line.503"></a>
+<span class="sourceLineNo">504</span>                        isDirty = hstats.isDirty;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>                }<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>//              public void setSkewness(T skewness) {<a name="line.507"></a>
+<span class="sourceLineNo">508</span>//                      this.skewness = skewness;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>//              }<a name="line.509"></a>
+<span class="sourceLineNo">510</span>//<a name="line.510"></a>
+<span class="sourceLineNo">511</span>//              public void setKurtosis(T kurtosis) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>//                      this.kurtosis = kurtosis;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>//              }<a name="line.513"></a>
+<span class="sourceLineNo">514</span>//<a name="line.514"></a>
+<span class="sourceLineNo">515</span>//              public T getSkewness() {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>//                      return skewness;<a name="line.516"></a>
+<span class="sourceLineNo">517</span>//              }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>//<a name="line.518"></a>
+<span class="sourceLineNo">519</span>//              public T getKurtosis() {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>//                      return kurtosis;<a name="line.520"></a>
+<span class="sourceLineNo">521</span>//              }<a name="line.521"></a>
+<span class="sourceLineNo">522</span><a name="line.522"></a>
+<span class="sourceLineNo">523</span>                public Dataset getSkewness(int axis) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>                        ReferencedDataset rd = smap.get(axis);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>                        return rd == null ? null : rd.get();<a name="line.525"></a>
+<span class="sourceLineNo">526</span>                }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>                public Dataset getKurtosis(int axis) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>                        ReferencedDataset rd = kmap.get(axis);<a name="line.529"></a>
+<span class="sourceLineNo">530</span>                        return rd == null ? null : rd.get();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>                }<a name="line.531"></a>
+<span class="sourceLineNo">532</span><a name="line.532"></a>
+<span class="sourceLineNo">533</span>                public void setSkewness(int axis, Dataset s) {<a name="line.533"></a>
+<span class="sourceLineNo">534</span>                        smap.put(axis, new ReferencedDataset(s));<a name="line.534"></a>
+<span class="sourceLineNo">535</span>                }<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>                public void setKurtosis(int axis, Dataset k) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>                        kmap.put(axis, new ReferencedDataset(k));<a name="line.538"></a>
+<span class="sourceLineNo">539</span>                }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>        }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>        static private HigherStatisticsImpl&lt;?&gt; calculateHigherMoments(final Dataset a, final boolean ignoreNaNs, final boolean ignoreInfs) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>                final int is = a.getElementsPerItem();<a name="line.543"></a>
+<span class="sourceLineNo">544</span>                final IndexIterator iter = a.getIterator();<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>                if (is == 1) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                        Skewness s = new Skewness();<a name="line.547"></a>
+<span class="sourceLineNo">548</span>                        Kurtosis k = new Kurtosis();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>                        if (ignoreNaNs) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>                                while (iter.hasNext()) {<a name="line.550"></a>
+<span class="sourceLineNo">551</span>                                        final double x = a.getElementDoubleAbs(iter.index);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>                                        if (Double.isNaN(x))<a name="line.552"></a>
+<span class="sourceLineNo">553</span>                                                continue;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>                                        s.increment(x);<a name="line.554"></a>
+<span class="sourceLineNo">555</span>                                        k.increment(x);<a name="line.555"></a>
+<span class="sourceLineNo">556</span>                                }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                        } else {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>                                while (iter.hasNext()) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>                                        final double x = a.getElementDoubleAbs(iter.index);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>                                        s.increment(x);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>                                        k.increment(x);<a name="line.561"></a>
+<span class="sourceLineNo">562</span>                                }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>                        }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>                        HigherStatisticsImpl&lt;Double&gt; stats = new HigherStatisticsImpl&lt;Double&gt;();<a name="line.565"></a>
+<span class="sourceLineNo">566</span>                        stats.skewness = s.getResult();<a name="line.566"></a>
+<span class="sourceLineNo">567</span>                        stats.kurtosis = k.getResult();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                        return stats;<a name="line.568"></a>
+<span class="sourceLineNo">569</span>                }<a name="line.569"></a>
+<span class="sourceLineNo">570</span>                final Skewness[] s = new Skewness[is];<a name="line.570"></a>
+<span class="sourceLineNo">571</span>                final Kurtosis[] k = new Kurtosis[is];<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>                for (int j = 0; j &lt; is; j++) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>                        s[j] = new Skewness();<a name="line.574"></a>
+<span class="sourceLineNo">575</span>                        k[j] = new Kurtosis();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>                }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>                if (ignoreNaNs) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                        while (iter.hasNext()) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>                                boolean skip = false;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>                                        if (Double.isNaN(a.getElementDoubleAbs(iter.index + j))) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>                                                skip = true;<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                                                break;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>                                        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span>                                }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>                                if (!skip)<a name="line.586"></a>
+<span class="sourceLineNo">587</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                                                final double val = a.getElementDoubleAbs(iter.index + j);<a name="line.588"></a>
+<span class="sourceLineNo">589</span>                                                s[j].increment(val);<a name="line.589"></a>
+<span class="sourceLineNo">590</span>                                                k[j].increment(val);<a name="line.590"></a>
+<span class="sourceLineNo">591</span>                                        }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>                        }<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                } else {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>                        while (iter.hasNext()) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                                        final double val = a.getElementDoubleAbs(iter.index + j);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>                                        s[j].increment(val);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                                        k[j].increment(val);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                                }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                        }<a name="line.600"></a>
+<span class="sourceLineNo">601</span>                }<a name="line.601"></a>
+<span class="sourceLineNo">602</span>                final double[] ts = new double[is];<a name="line.602"></a>
+<span class="sourceLineNo">603</span>                final double[] tk = new double[is];<a name="line.603"></a>
+<span class="sourceLineNo">604</span>                for (int j = 0; j &lt; is; j++) {<a name="line.604"></a>
+<span class="sourceLineNo">605</span>                        ts[j] = s[j].getResult();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>                        tk[j] = k[j].getResult();<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                }<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>                HigherStatisticsImpl&lt;double[]&gt; stats = new HigherStatisticsImpl&lt;double[]&gt;();<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                stats.skewness = ts;<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                stats.kurtosis = tk;<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                return stats;<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>        static private HigherStatisticsImpl&lt;?&gt; calculateHigherMoments(final Dataset a, final boolean ignoreNaNs, final boolean ignoreInfs, final int axis) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                final int rank = a.getRank();<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                final int is = a.getElementsPerItem();<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                final int[] oshape = a.getShape();<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                final int alen = oshape[axis];<a name="line.619"></a>
+<span class="sourceLineNo">620</span>                oshape[axis] = 1;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>        <a name="line.621"></a>
+<span class="sourceLineNo">622</span>                final int[] nshape = ShapeUtils.squeezeShape(oshape, false);<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                final Dataset sk;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                final Dataset ku;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                HigherStatisticsImpl&lt;?&gt; stats = null;<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        <a name="line.626"></a>
+<span class="sourceLineNo">627</span>                if (is == 1) {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>                        if (stats == null) {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>                                stats = new HigherStatisticsImpl&lt;Double&gt;();<a name="line.629"></a>
+<span class="sourceLineNo">630</span>                                a.setMetadata(stats);<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                        }<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                        sk = DatasetFactory.zeros(DoubleDataset.class, nshape);<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        ku = DatasetFactory.zeros(DoubleDataset.class, nshape);<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                        final IndexIterator qiter = sk.getIterator(true);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        final int[] qpos = qiter.getPos();<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                        final int[] spos = oshape;<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        <a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        while (qiter.hasNext()) {<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                                int i = 0;<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                                for (; i &lt; axis; i++) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                                        spos[i] = qpos[i];<a name="line.641"></a>
+<span class="sourceLineNo">642</span>                                }<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                                spos[i++] = 0;<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                                for (; i &lt; rank; i++) {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                                        spos[i] = qpos[i - 1];<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                                }<a name="line.646"></a>
+<span class="sourceLineNo">647</span>        <a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                Skewness s = new Skewness();<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                Kurtosis k = new Kurtosis();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                                if (ignoreNaNs) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                                                spos[axis] = j;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                                                final double val = a.getDouble(spos);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>                                                if (Double.isNaN(val))<a name="line.654"></a>
+<span class="sourceLineNo">655</span>                                                        continue;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        <a name="line.656"></a>
+<span class="sourceLineNo">657</span>                                                s.increment(val);<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                                                k.increment(val);<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                                        }<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                                } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                                                spos[axis] = j;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>                                                final double val = a.getDouble(spos);<a name="line.663"></a>
+<span class="sourceLineNo">664</span>                                                s.increment(val);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                                                k.increment(val);<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                                        }<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                                }<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                                sk.set(s.getResult(), qpos);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                                ku.set(k.getResult(), qpos);<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                        }<a name="line.670"></a>
+<span class="sourceLineNo">671</span>                } else {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>                        if (stats == null) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>                                stats = new HigherStatisticsImpl&lt;double[]&gt;();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>                                a.setMetadata(stats);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                        }<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                        sk = DatasetFactory.zeros(is, CompoundDoubleDataset.class, nshape);<a name="line.676"></a>
+<span class="sourceLineNo">677</span>                        ku = DatasetFactory.zeros(is, CompoundDoubleDataset.class, nshape);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>                        final IndexIterator qiter = sk.getIterator(true);<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        final int[] qpos = qiter.getPos();<a name="line.679"></a>
+<span class="sourceLineNo">680</span>                        final int[] spos = oshape;<a name="line.680"></a>
+<span class="sourceLineNo">681</span>                        final Skewness[] s = new Skewness[is];<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                        final Kurtosis[] k = new Kurtosis[is];<a name="line.682"></a>
+<span class="sourceLineNo">683</span>                        final double[] ts = new double[is];<a name="line.683"></a>
+<span class="sourceLineNo">684</span>                        final double[] tk = new double[is];<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        <a name="line.685"></a>
+<span class="sourceLineNo">686</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                                s[j] = new Skewness();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                                k[j] = new Kurtosis();<a name="line.688"></a>
+<span class="sourceLineNo">689</span>                        }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>                        while (qiter.hasNext()) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>                                int i = 0;<a name="line.691"></a>
+<span class="sourceLineNo">692</span>                                for (; i &lt; axis; i++) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                                        spos[i] = qpos[i];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>                                spos[i++] = 0;<a name="line.695"></a>
+<span class="sourceLineNo">696</span>                                for (; i &lt; rank; i++) {<a name="line.696"></a>
+<span class="sourceLineNo">697</span>                                        spos[i] = qpos[i-1];<a name="line.697"></a>
+<span class="sourceLineNo">698</span>                                }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>        <a name="line.699"></a>
+<span class="sourceLineNo">700</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                                        s[j].clear();<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                                        k[j].clear();<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                                }<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                int index = a.get1DIndex(spos);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                if (ignoreNaNs) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                                        boolean skip = false;<a name="line.706"></a>
+<span class="sourceLineNo">707</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>                                                if (Double.isNaN(a.getElementDoubleAbs(index + j))) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                                                        skip = true;<a name="line.709"></a>
+<span class="sourceLineNo">710</span>                                                        break;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>                                                }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                        }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                                        if (!skip)<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                                                for (int j = 0; j &lt; is; j++) {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                                                        final double val = a.getElementDoubleAbs(index + j);<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                                                        s[j].increment(val);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>                                                        k[j].increment(val);<a name="line.717"></a>
+<span class="sourceLineNo">718</span>                                                }<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                } else {<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                                                final double val = a.getElementDoubleAbs(index + j);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                                                s[j].increment(val);<a name="line.722"></a>
+<span class="sourceLineNo">723</span>                                                k[j].increment(val);<a name="line.723"></a>
+<span class="sourceLineNo">724</span>                                        }<a name="line.724"></a>
+<span class="sourceLineNo">725</span>                                }<a name="line.725"></a>
+<span class="sourceLineNo">726</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                                        ts[j] = s[j].getResult(); <a name="line.727"></a>
+<span class="sourceLineNo">728</span>                                        tk[j] = k[j].getResult(); <a name="line.728"></a>
+<span class="sourceLineNo">729</span>                                }<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                                sk.set(ts, qpos);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                ku.set(tk, qpos);<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                        }<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                }<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                stats.setSkewness(axis, sk);<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                stats.setKurtosis(axis, ku);<a name="line.736"></a>
+<span class="sourceLineNo">737</span>                return stats;<a name="line.737"></a>
+<span class="sourceLineNo">738</span>        }<a name="line.738"></a>
+<span class="sourceLineNo">739</span><a name="line.739"></a>
+<span class="sourceLineNo">740</span>        /**<a name="line.740"></a>
+<span class="sourceLineNo">741</span>         * @param a dataset<a name="line.741"></a>
+<span class="sourceLineNo">742</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.742"></a>
+<span class="sourceLineNo">743</span>         * @return skewness<a name="line.743"></a>
+<span class="sourceLineNo">744</span>         * @since 2.0<a name="line.744"></a>
+<span class="sourceLineNo">745</span>         */<a name="line.745"></a>
+<span class="sourceLineNo">746</span>        public static Object skewness(final Dataset a, final boolean... ignoreInvalids) {<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                return getHigherStatistic(a, ignoreInvalids).skewness;<a name="line.747"></a>
+<span class="sourceLineNo">748</span>        }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>        /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>         * @param a dataset<a name="line.751"></a>
+<span class="sourceLineNo">752</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.752"></a>
+<span class="sourceLineNo">753</span>         * @return kurtosis<a name="line.753"></a>
+<span class="sourceLineNo">754</span>         * @since 2.0<a name="line.754"></a>
+<span class="sourceLineNo">755</span>         */<a name="line.755"></a>
+<span class="sourceLineNo">756</span>        public static Object kurtosis(final Dataset a, final boolean... ignoreInvalids) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>                return getHigherStatistic(a, ignoreInvalids).kurtosis;<a name="line.757"></a>
+<span class="sourceLineNo">758</span>        }<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>        /**<a name="line.760"></a>
+<span class="sourceLineNo">761</span>         * @param a dataset<a name="line.761"></a>
+<span class="sourceLineNo">762</span>         * @param axis<a name="line.762"></a>
+<span class="sourceLineNo">763</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.763"></a>
+<span class="sourceLineNo">764</span>         * @return skewness along axis in dataset<a name="line.764"></a>
+<span class="sourceLineNo">765</span>         * @since 2.0<a name="line.765"></a>
+<span class="sourceLineNo">766</span>         */<a name="line.766"></a>
+<span class="sourceLineNo">767</span>        public static Dataset skewness(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                axis = a.checkAxis(axis);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                return getHigherStatistic(a, ignoreInvalids, axis).getSkewness(axis);<a name="line.769"></a>
+<span class="sourceLineNo">770</span>        }<a name="line.770"></a>
+<span class="sourceLineNo">771</span><a name="line.771"></a>
+<span class="sourceLineNo">772</span>        /**<a name="line.772"></a>
+<span class="sourceLineNo">773</span>         * @param a dataset<a name="line.773"></a>
+<span class="sourceLineNo">774</span>         * @param axis<a name="line.774"></a>
+<span class="sourceLineNo">775</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.775"></a>
+<span class="sourceLineNo">776</span>         * @return kurtosis along axis in dataset<a name="line.776"></a>
+<span class="sourceLineNo">777</span>         * @since 2.0<a name="line.777"></a>
+<span class="sourceLineNo">778</span>         */<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        public static Dataset kurtosis(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>                axis = a.checkAxis(axis);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>                return getHigherStatistic(a, ignoreInvalids, axis).getKurtosis(axis);<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>        /**<a name="line.784"></a>
+<span class="sourceLineNo">785</span>         * @param a dataset<a name="line.785"></a>
+<span class="sourceLineNo">786</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.786"></a>
+<span class="sourceLineNo">787</span>         * @return sum of dataset<a name="line.787"></a>
+<span class="sourceLineNo">788</span>         * @since 2.0<a name="line.788"></a>
+<span class="sourceLineNo">789</span>         */<a name="line.789"></a>
+<span class="sourceLineNo">790</span>        public static Object sum(final Dataset a, final boolean... ignoreInvalids) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>                return a.sum(ignoreInvalids);<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>        /**<a name="line.794"></a>
+<span class="sourceLineNo">795</span>         * @param a dataset<a name="line.795"></a>
+<span class="sourceLineNo">796</span>         * @param dtype<a name="line.796"></a>
+<span class="sourceLineNo">797</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.797"></a>
+<span class="sourceLineNo">798</span>         * @return typed sum of dataset<a name="line.798"></a>
+<span class="sourceLineNo">799</span>         * @since 2.0<a name="line.799"></a>
+<span class="sourceLineNo">800</span>         */<a name="line.800"></a>
+<span class="sourceLineNo">801</span>        public static Object typedSum(final Dataset a, int dtype, final boolean... ignoreInvalids) {<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                if (a.isComplex()) {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        Complex m = (Complex) a.sum(ignoreInvalids);<a name="line.803"></a>
+<span class="sourceLineNo">804</span>                        return m;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>                } else if (a instanceof CompoundDataset) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                        return  DTypeUtils.fromDoublesToBiggestPrimitives((double[]) a.sum(ignoreInvalids), dtype);<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                }<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                return DTypeUtils.fromDoubleToBiggestNumber(DTypeUtils.toReal(a.sum(ignoreInvalids)), dtype);<a name="line.808"></a>
+<span class="sourceLineNo">809</span>        }<a name="line.809"></a>
+<span class="sourceLineNo">810</span><a name="line.810"></a>
+<span class="sourceLineNo">811</span>        /**<a name="line.811"></a>
+<span class="sourceLineNo">812</span>         * @param a dataset<a name="line.812"></a>
+<span class="sourceLineNo">813</span>         * @param dtype<a name="line.813"></a>
+<span class="sourceLineNo">814</span>         * @param axis<a name="line.814"></a>
+<span class="sourceLineNo">815</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.815"></a>
+<span class="sourceLineNo">816</span>         * @return typed sum of items along axis in dataset<a name="line.816"></a>
+<span class="sourceLineNo">817</span>         * @since 2.0<a name="line.817"></a>
+<span class="sourceLineNo">818</span>         */<a name="line.818"></a>
+<span class="sourceLineNo">819</span>        public static Dataset typedSum(final Dataset a, int dtype, int axis, final boolean... ignoreInvalids) {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                return DatasetUtils.cast(a.sum(axis, ignoreInvalids), dtype);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>        }<a name="line.821"></a>
+<span class="sourceLineNo">822</span><a name="line.822"></a>
+<span class="sourceLineNo">823</span>        /**<a name="line.823"></a>
+<span class="sourceLineNo">824</span>         * @param a dataset<a name="line.824"></a>
+<span class="sourceLineNo">825</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.825"></a>
+<span class="sourceLineNo">826</span>         * @return product of all items in dataset<a name="line.826"></a>
+<span class="sourceLineNo">827</span>         * @since 2.0<a name="line.827"></a>
+<span class="sourceLineNo">828</span>         */<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        public static Object product(final Dataset a, final boolean... ignoreInvalids) {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>                return typedProduct(a, a.getDType(), ignoreInvalids);<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>        /**<a name="line.833"></a>
+<span class="sourceLineNo">834</span>         * @param a dataset<a name="line.834"></a>
+<span class="sourceLineNo">835</span>         * @param axis<a name="line.835"></a>
+<span class="sourceLineNo">836</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.836"></a>
+<span class="sourceLineNo">837</span>         * @return product of items along axis in dataset<a name="line.837"></a>
+<span class="sourceLineNo">838</span>         * @since 2.0<a name="line.838"></a>
+<span class="sourceLineNo">839</span>         */<a name="line.839"></a>
+<span class="sourceLineNo">840</span>        public static Dataset product(final Dataset a, final int axis, final boolean... ignoreInvalids) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                return typedProduct(a, a.getDType(), axis, ignoreInvalids);<a name="line.841"></a>
+<span class="sourceLineNo">842</span>        }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span>        /**<a name="line.844"></a>
+<span class="sourceLineNo">845</span>         * @param a dataset<a name="line.845"></a>
+<span class="sourceLineNo">846</span>         * @param dtype<a name="line.846"></a>
+<span class="sourceLineNo">847</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.847"></a>
+<span class="sourceLineNo">848</span>         * @return typed product of all items in dataset<a name="line.848"></a>
+<span class="sourceLineNo">849</span>         * @since 2.0<a name="line.849"></a>
+<span class="sourceLineNo">850</span>         */<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        public static Object typedProduct(final Dataset a, final int dtype, final boolean... ignoreInvalids) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                final boolean ignoreNaNs;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                final boolean ignoreInfs;<a name="line.853"></a>
+<span class="sourceLineNo">854</span>                if (a.hasFloatingPointElements()) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.856"></a>
+<span class="sourceLineNo">857</span>                } else {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        ignoreNaNs = false;<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                        ignoreInfs = false;<a name="line.859"></a>
+<span class="sourceLineNo">860</span>                }<a name="line.860"></a>
+<span class="sourceLineNo">861</span><a name="line.861"></a>
+<span class="sourceLineNo">862</span>                if (a.isComplex()) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                        IndexIterator it = a.getIterator();<a name="line.863"></a>
+<span class="sourceLineNo">864</span>                        double rv = 1, iv = 0;<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>                        while (it.hasNext()) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                                final double r1 = a.getElementDoubleAbs(it.index);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                                final double i1 = a.getElementDoubleAbs(it.index + 1);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                                if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.869"></a>
+<span class="sourceLineNo">870</span>                                        continue;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>                                }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                                if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                        continue;<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                }<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                final double tv = r1*rv - i1*iv;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                                iv = r1*iv + i1*rv;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                                rv = tv;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.878"></a>
+<span class="sourceLineNo">879</span>                                        break;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>                                }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>                        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span><a name="line.882"></a>
+<span class="sourceLineNo">883</span>                        return new Complex(rv, iv);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                }<a name="line.884"></a>
+<span class="sourceLineNo">885</span><a name="line.885"></a>
+<span class="sourceLineNo">886</span>                IndexIterator it = a.getIterator();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>                final int is;<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                final long[] lresults;<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                final double[] dresults;<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                switch (dtype) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                case Dataset.BOOL:<a name="line.892"></a>
+<span class="sourceLineNo">893</span>                case Dataset.INT8: case Dataset.INT16:<a name="line.893"></a>
+<span class="sourceLineNo">894</span>                case Dataset.INT32: case Dataset.INT64:<a name="line.894"></a>
+<span class="sourceLineNo">895</span>                        long lresult = 1;<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                        while (it.hasNext()) {<a name="line.896"></a>
+<span class="sourceLineNo">897</span>                                lresult *= a.getElementLongAbs(it.index);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>                        }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                        return new Long(lresult);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                case Dataset.ARRAYINT8: case Dataset.ARRAYINT16:<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                case Dataset.ARRAYINT32: case Dataset.ARRAYINT64:<a name="line.901"></a>
+<span class="sourceLineNo">902</span>                        lresult = 1;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>                        is = a.getElementsPerItem();<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        lresults = new long[is];<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>                                lresults[j] = 1;<a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        }<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                        while (it.hasNext()) {<a name="line.908"></a>
+<span class="sourceLineNo">909</span>                                for (int j = 0; j &lt; is; j++)<a name="line.909"></a>
+<span class="sourceLineNo">910</span>                                        lresults[j] *= a.getElementLongAbs(it.index+j);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>                        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>                        return lresults;<a name="line.912"></a>
+<span class="sourceLineNo">913</span>                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.913"></a>
+<span class="sourceLineNo">914</span>                        double dresult = 1.;<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                        while (it.hasNext()) {<a name="line.915"></a>
+<span class="sourceLineNo">916</span>                                final double x = a.getElementDoubleAbs(it.index);<a name="line.916"></a>
+<span class="sourceLineNo">917</span>                                if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>                                        continue;<a name="line.918"></a>
+<span class="sourceLineNo">919</span>                                }<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                                if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.920"></a>
+<span class="sourceLineNo">921</span>                                        continue;<a name="line.921"></a>
+<span class="sourceLineNo">922</span>                                }<a name="line.922"></a>
+<span class="sourceLineNo">923</span>                                dresult *= x;<a name="line.923"></a>
+<span class="sourceLineNo">924</span>                                if (Double.isNaN(dresult)) {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                                        break;<a name="line.925"></a>
+<span class="sourceLineNo">926</span>                                }<a name="line.926"></a>
+<span class="sourceLineNo">927</span>                        }<a name="line.927"></a>
+<span class="sourceLineNo">928</span>                        return Double.valueOf(dresult);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>                case Dataset.ARRAYFLOAT32:<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                case Dataset.ARRAYFLOAT64:<a name="line.930"></a>
+<span class="sourceLineNo">931</span>                        is = a.getElementsPerItem();<a name="line.931"></a>
+<span class="sourceLineNo">932</span>                        double[] vals = new double[is];<a name="line.932"></a>
+<span class="sourceLineNo">933</span>                        dresults = new double[is];<a name="line.933"></a>
+<span class="sourceLineNo">934</span>                        for (int j = 0; j &lt; is; j++) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                                dresults[j] = 1.;<a name="line.935"></a>
+<span class="sourceLineNo">936</span>                        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span>                        while (it.hasNext()) {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>                                boolean okay = true;<a name="line.938"></a>
+<span class="sourceLineNo">939</span>                                for (int j = 0; j &lt; is; j++) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                                        final double val = a.getElementDoubleAbs(it.index + j);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>                                                okay = false;<a name="line.942"></a>
+<span class="sourceLineNo">943</span>                                                break;<a name="line.943"></a>
+<span class="sourceLineNo">944</span>                                        }<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>                                                okay = false;<a name="line.946"></a>
+<span class="sourceLineNo">947</span>                                                break;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>                                        }<a name="line.948"></a>
+<span class="sourceLineNo">949</span>                                        vals[j] = val;<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                                }<a name="line.950"></a>
+<span class="sourceLineNo">951</span>                                if (okay) {<a name="line.951"></a>
+<span class="sourceLineNo">952</span>                                        for (int j = 0; j &lt; is; j++) {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>                                                double val = vals[j];<a name="line.953"></a>
+<span class="sourceLineNo">954</span>                                                dresults[j] *= val;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                                        }<a name="line.955"></a>
+<span class="sourceLineNo">956</span>                                }<a name="line.956"></a>
+<span class="sourceLineNo">957</span>                        }<a name="line.957"></a>
+<span class="sourceLineNo">958</span>                        return dresults;<a name="line.958"></a>
+<span class="sourceLineNo">959</span>                }<a name="line.959"></a>
+<span class="sourceLineNo">960</span><a name="line.960"></a>
+<span class="sourceLineNo">961</span>                return null;<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>        /**<a name="line.964"></a>
+<span class="sourceLineNo">965</span>         * @param a dataset<a name="line.965"></a>
+<span class="sourceLineNo">966</span>         * @param dtype<a name="line.966"></a>
+<span class="sourceLineNo">967</span>         * @param axis<a name="line.967"></a>
+<span class="sourceLineNo">968</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.968"></a>
+<span class="sourceLineNo">969</span>         * @return typed product of items along axis in dataset<a name="line.969"></a>
+<span class="sourceLineNo">970</span>         * @since 2.0<a name="line.970"></a>
+<span class="sourceLineNo">971</span>         */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        public static Dataset typedProduct(final Dataset a, final int dtype, int axis, final boolean... ignoreInvalids) {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>                axis = a.checkAxis(axis);<a name="line.973"></a>
+<span class="sourceLineNo">974</span>                final int[] oshape = a.getShape();<a name="line.974"></a>
+<span class="sourceLineNo">975</span>                final int is = a.getElementsPerItem();<a name="line.975"></a>
+<span class="sourceLineNo">976</span>                final int alen = oshape[axis];<a name="line.976"></a>
+<span class="sourceLineNo">977</span>                oshape[axis] = 1;<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>                final boolean ignoreNaNs;<a name="line.979"></a>
+<span class="sourceLineNo">980</span>                final boolean ignoreInfs;<a name="line.980"></a>
+<span class="sourceLineNo">981</span>                if (a.hasFloatingPointElements()) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.982"></a>
+<span class="sourceLineNo">983</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>                } else {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>                        ignoreNaNs = false;<a name="line.985"></a>
+<span class="sourceLineNo">986</span>                        ignoreInfs = false;<a name="line.986"></a>
+<span class="sourceLineNo">987</span>                }<a name="line.987"></a>
+<span class="sourceLineNo">988</span>                @SuppressWarnings("deprecation")<a name="line.988"></a>
+<span class="sourceLineNo">989</span>                Dataset result = DatasetFactory.zeros(is, oshape, dtype);<a name="line.989"></a>
+<span class="sourceLineNo">990</span><a name="line.990"></a>
+<span class="sourceLineNo">991</span>                IndexIterator qiter = result.getIterator(true);<a name="line.991"></a>
+<span class="sourceLineNo">992</span>                int[] qpos = qiter.getPos();<a name="line.992"></a>
+<span class="sourceLineNo">993</span>                int[] spos;<a name="line.993"></a>
+<span class="sourceLineNo">994</span><a name="line.994"></a>
+<span class="sourceLineNo">995</span>                // TODO add getLongArray(long[], int...) to CompoundDataset<a name="line.995"></a>
+<span class="sourceLineNo">996</span>                while (qiter.hasNext()) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>                        spos = qpos.clone();<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>                        if (a.isComplex()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                                double rv = 1, iv = 0;<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                                switch (dtype) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>                                case Dataset.COMPLEX64:<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>                                                spos[axis] = j;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>                                                final float r1 = af.getReal(spos);<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>                                                final float i1 = af.getImag(spos);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>                                                if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>                                                        continue;<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>                                                }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>                                                if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>                                                        continue;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>                                                }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>                                                final double tv = r1*rv - i1*iv;<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>                                                iv = r1*iv + i1*rv;<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>                                                rv = tv;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>                                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>                                                        break;<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>                                                }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>                                        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>                                        break;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>                                case Dataset.COMPLEX128:<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>                                                spos[axis] = j;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>                                                final double r1 = ad.getReal(spos);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>                                                final double i1 = ad.getImag(spos);<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>                                                if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>                                                        continue;<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>                                                }<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>                                                if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>                                                        continue;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>                                                }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>                                                final double tv = r1*rv - i1*iv;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>                                                iv = r1*iv + i1*rv;<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>                                                rv = tv;<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>                                                if (Double.isNaN(rv) &amp;&amp; Double.isNaN(iv)) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>                                                        break;<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>                                                }<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>                                        }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>                                        break;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>                                }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span><a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>                                result.set(new Complex(rv, iv), qpos);<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                        } else {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>                                final long[] lresults;<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>                                final double[] dresults;<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span><a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>                                switch (dtype) {<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>                                case Dataset.BOOL:<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>                                        long lresult = 1;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>                                                spos[axis] = j;<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                                                lresult *= a.getInt(spos);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>                                        }<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>                                        result.set(lresult, qpos);<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>                                        break;<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>                                case Dataset.ARRAYINT8:<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>                                        lresults = new long[is];<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>                                                lresults[k] = 1;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>                                        }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>                                                spos[axis] = j;<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>                                                final byte[] va = (byte[]) a.getObject(spos);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>                                                        lresults[k] *= va[k];<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>                                                }<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>                                        }<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>                                        result.set(lresults, qpos);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>                                        break;<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>                                case Dataset.ARRAYINT16:<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>                                        lresults = new long[is];<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>                                                lresults[k] = 1;<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>                                        }<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>                                                spos[axis] = j;<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                                                final short[] va = (short[]) a.getObject(spos);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>                                                        lresults[k] *= va[k];<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>                                                }<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>                                        }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>                                        result.set(lresults, qpos);<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>                                        break;<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>                                case Dataset.ARRAYINT32:<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>                                        lresults = new long[is];<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>                                                lresults[k] = 1;<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>                                        }<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>                                                spos[axis] = j;<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>                                                final int[] va = (int[]) a.getObject(spos);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>                                                        lresults[k] *= va[k];<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>                                                }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>                                        }<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>                                        result.set(lresults, qpos);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>                                        break;<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>                                case Dataset.ARRAYINT64:<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>                                        lresults = new long[is];<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>                                                lresults[k] = 1;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>                                        }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>                                                spos[axis] = j;<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>                                                final long[] va = (long[]) a.getObject(spos);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>                                                        lresults[k] *= va[k];<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>                                                }<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>                                        }<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>                                        result.set(lresults, qpos);<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>                                        break;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>                                        double dresult = 1.;<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>                                                spos[axis] = j;<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>                                                final double x = a.getDouble(spos); <a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>                                                if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>                                                        continue;<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>                                                }<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>                                                if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>                                                        continue;<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>                                                }<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>                                                dresult *= x;<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>                                                if (Double.isNaN(dresult)) {<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>                                                        break;<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>                                                }<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>                                        }<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>                                        result.set(dresult, qpos);<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                                        break;<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>                                        double[] dvalues = new double[is];<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                                        dresults = new double[is];<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>                                                dresults[k] = 1.;<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>                                        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>                                                spos[axis] = j;<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>                                                da.getDoubleArray(dvalues, spos);<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>                                                boolean okay = true;<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>                                                        final double val = dvalues[k];<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>                                                                okay = false;<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>                                                                break;<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>                                                        }<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>                                                                okay = false;<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>                                                                break;<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>                                                        }<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>                                                }<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>                                                if (okay) {<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>                                                                dresults[k] *= dvalues[k];<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>                                                        }<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>                                                }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>                                        }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>                                        result.set(dresults, qpos);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>                                        break;<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>                                }<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>                        }<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>                }<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span><a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>                result.setShape(ShapeUtils.squeezeShape(oshape, axis));<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>                return result;<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>        }<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>        /**<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>         * @param a dataset<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>         * @return cumulative product of items in flattened dataset<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>         * @since 2.0<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>         */<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>        public static Dataset cumulativeProduct(final Dataset a, final boolean... ignoreInvalids) {<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>                return cumulativeProduct(a.flatten(), 0, ignoreInvalids);<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>        }<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>        /**<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>         * @param a dataset<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>         * @param axis<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>         * @return cumulative product of items along axis in dataset<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>         * @since 2.0<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>         */<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>        public static Dataset cumulativeProduct(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>                axis = a.checkAxis(axis);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>                int dtype = a.getDType();<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>                int[] oshape = a.getShape();<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>                int alen = oshape[axis];<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>                oshape[axis] = 1;<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span><a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>                final boolean ignoreNaNs;<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>                final boolean ignoreInfs;<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>                if (a.hasFloatingPointElements()) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>                } else {<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>                        ignoreNaNs = false;<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>                        ignoreInfs = false;<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>                }<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>                Dataset result = DatasetFactory.zeros(a);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>                PositionIterator pi = result.getPositionIterator(axis);<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span><a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>                int[] pos = pi.getPos();<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>                while (pi.hasNext()) {<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span><a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>                        if (a.isComplex()) {<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>                                double rv = 1, iv = 0;<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>                                switch (dtype) {<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>                                case Dataset.COMPLEX64:<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>                                        ComplexFloatDataset rf = (ComplexFloatDataset) result;<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>                                                        pos[axis] = j;<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>                                                        final float r1 = af.getReal(pos);<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>                                                        final float i1 = af.getImag(pos);<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>                                                        if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>                                                                continue;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>                                                        }<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>                                                        if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>                                                                continue;<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>                                                        }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>                                                        final double tv = r1*rv - i1*iv;<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>                                                        iv = r1*iv + i1*rv;<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>                                                        rv = tv;<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>                                                }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>                                                rf.set((float) rv, (float) iv, pos);<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>                                        }<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>                                        break;<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>                                case Dataset.COMPLEX128:<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>                                        ComplexDoubleDataset rd = (ComplexDoubleDataset) result;<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>                                                        pos[axis] = j;<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>                                                        final double r1 = ad.getReal(pos);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>                                                        final double i1 = ad.getImag(pos);<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>                                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>                                                                continue;<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>                                                        }<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>                                                        if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>                                                                continue;<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>                                                        }<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>                                                        final double tv = r1*rv - i1*iv;<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>                                                        iv = r1*iv + i1*rv;<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>                                                        rv = tv;<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>                                                }<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>                                                rd.set(rv, iv, pos);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>                                        }<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>                                        break;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>                                }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>                        } else {<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>                                final int is;<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>                                final long[] lresults;<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>                                final double[] dresults;<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span><a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>                                switch (dtype) {<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>                                case Dataset.BOOL:<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>                                        long lresult = 1;<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>                                                pos[axis] = j;<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>                                                lresult *= a.getInt(pos);<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>                                                result.set(lresult, pos);<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>                                        }<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>                                        break;<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span>                                case Dataset.ARRAYINT8:<a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>                                        is = a.getElementsPerItem();<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>                                        lresults = new long[is];<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>                                                lresults[k] = 1;<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>                                        }<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>                                                pos[axis] = j;<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>                                                        lresults[k] *= va[k];<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>                                                }<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>                                                result.set(lresults, pos);<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>                                        }<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>                                        break;<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>                                case Dataset.ARRAYINT16:<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>                                        is = a.getElementsPerItem();<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>                                        lresults = new long[is];<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>                                                lresults[k] = 1;<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>                                        }<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>                                                pos[axis] = j;<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>                                                        lresults[k] *= va[k];<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>                                                }<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>                                                result.set(lresults, pos);<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span>                                        }<a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>                                        break;<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>                                case Dataset.ARRAYINT32:<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>                                        is = a.getElementsPerItem();<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>                                        lresults = new long[is];<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>                                                lresults[k] = 1;<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>                                        }<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>                                                pos[axis] = j;<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>                                                        lresults[k] *= va[k];<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>                                                }<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>                                                result.set(lresults, pos);<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>                                        }<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>                                        break;<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>                                case Dataset.ARRAYINT64:<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>                                        is = a.getElementsPerItem();<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>                                        lresults = new long[is];<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>                                                lresults[k] = 1;<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>                                        }<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>                                                pos[axis] = j;<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>                                                        lresults[k] *= va[k];<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>                                                }<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>                                                result.set(lresults, pos);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>                                        }<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>                                        break;<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>                                        double dresult = 1.;<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>                                                if (!Double.isNaN(dresult)) {<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>                                                        pos[axis] = j;<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>                                                        final double x = a.getDouble(pos);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>                                                                continue;<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>                                                        }<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>                                                                continue;<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>                                                        }<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>                                                        dresult *= x;<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>                                                }<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>                                                result.set(dresult, pos);<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>                                        }<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>                                        break;<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>                                        is = a.getElementsPerItem();<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>                                        double[] dvalues = new double[is];<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>                                        dresults = new double[is];<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>                                        for (int k = 0; k &lt; is; k++) {<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>                                                dresults[k] = 1.;<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>                                        }<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>                                                pos[axis] = j;<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>                                                da.getDoubleArray(dvalues, pos);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>                                                boolean okay = true;<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>                                                        final double val = dvalues[k];<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>                                                                okay = false;<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>                                                                break;<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>                                                        }<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>                                                                okay = false;<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>                                                                break;<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>                                                        }<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>                                                }<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>                                                if (okay) {<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>                                                                dresults[k] *= dvalues[k];<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>                                                        }<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>                                                }<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>                                                result.set(dresults, pos);<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>                                        }<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>                                        break;<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>                                }<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>                        }<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>                }<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span><a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>                return result;<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>        }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span><a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>        /**<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>         * @param a dataset<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>         * @param ignoreInvalids see {@link IDataset#max(boolean...)}<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>         * @return cumulative sum of items in flattened dataset<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>         * @since 2.0<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>         */<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>        public static Dataset cumulativeSum(final Dataset a, final boolean... ignoreInvalids) {<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>                return cumulativeSum(a.flatten(), 0, ignoreInvalids);<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>        }<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span><a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>        /**<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>         * @param a dataset<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>         * @param axis<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>         * @param ignoreInvalids see {@link Dataset#max(int, boolean...)}<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>         * @return cumulative sum of items along axis in dataset<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>         * @since 2.0<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>         */<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>        public static Dataset cumulativeSum(final Dataset a, int axis, final boolean... ignoreInvalids) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>                axis = a.checkAxis(axis);<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>                int dtype = a.getDType();<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>                int[] oshape = a.getShape();<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>                int alen = oshape[axis];<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>                oshape[axis] = 1;<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span><a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>                final boolean ignoreNaNs;<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>                final boolean ignoreInfs;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>                if (a.hasFloatingPointElements()) {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>                        ignoreNaNs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 0 ? ignoreInvalids[0] : false;<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>                        ignoreInfs = ignoreInvalids != null &amp;&amp; ignoreInvalids.length &gt; 1 ? ignoreInvalids[1] : ignoreNaNs;<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>                } else {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>                        ignoreNaNs = false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>                        ignoreInfs = false;<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>                }<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>                Dataset result = DatasetFactory.zeros(a);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>                PositionIterator pi = result.getPositionIterator(axis);<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>                int[] pos = pi.getPos();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span><a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>                while (pi.hasNext()) {<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span><a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>                        if (a.isComplex()) {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>                                double rv = 0, iv = 0;<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>                                switch (dtype) {<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>                                case Dataset.COMPLEX64:<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>                                        ComplexFloatDataset af = (ComplexFloatDataset) a;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>                                        ComplexFloatDataset rf = (ComplexFloatDataset) result;<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>                                                        pos[axis] = j;<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>                                                        final float r1 = af.getReal(pos);<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>                                                        final float i1 = af.getImag(pos);<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>                                                        if (ignoreNaNs &amp;&amp; (Float.isNaN(r1) || Float.isNaN(i1))) {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>                                                                continue;<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>                                                        }<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>                                                        if (ignoreInfs  &amp;&amp; (Float.isInfinite(r1) || Float.isInfinite(i1))) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>                                                                continue;<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>                                                        }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>                                                        rv += r1;<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>                                                        iv += i1;<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>                                                }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>                                                rf.set((float) rv, (float) iv, pos);<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>                                        }<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>                                        break;<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>                                case Dataset.COMPLEX128:<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>                                        ComplexDoubleDataset ad = (ComplexDoubleDataset) a;<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>                                        ComplexDoubleDataset rd = (ComplexDoubleDataset) result;<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>                                                if (!Double.isNaN(rv) || !Double.isNaN(iv)) {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>                                                        pos[axis] = j;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>                                                        final double r1 = ad.getReal(pos);<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>                                                        final double i1 = ad.getImag(pos);<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>                                                        if (ignoreNaNs &amp;&amp; (Double.isNaN(r1) || Double.isNaN(i1))) {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>                                                                continue;<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>                                                        }<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>                                                        if (ignoreInfs  &amp;&amp; (Double.isInfinite(r1) || Double.isInfinite(i1))) {<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>                                                                continue;<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>                                                        }<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>                                                        rv += r1;<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>                                                        iv += i1;<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>                                                }<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>                                                rd.set(rv, iv, pos);<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>                                        }<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>                                        break;<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>                                }<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>                        } else {<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>                                final int is;<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>                                final long[] lresults;<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>                                final double[] dresults;<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span><a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>                                switch (dtype) {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>                                case Dataset.BOOL:<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>                                case Dataset.INT8: case Dataset.INT16:<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>                                case Dataset.INT32: case Dataset.INT64:<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>                                        long lresult = 0;<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>                                                pos[axis] = j;<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>                                                lresult += a.getInt(pos);<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>                                                result.set(lresult, pos);<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>                                        }<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>                                        break;<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>                                case Dataset.ARRAYINT8:<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>                                        is = a.getElementsPerItem();<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>                                        lresults = new long[is];<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>                                                pos[axis] = j;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>                                                final byte[] va = (byte[]) a.getObject(pos);<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>                                                        lresults[k] += va[k];<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>                                                }<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>                                                result.set(lresults, pos);<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>                                        }<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>                                        break;<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>                                case Dataset.ARRAYINT16:<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>                                        is = a.getElementsPerItem();<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>                                        lresults = new long[is];<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>                                                pos[axis] = j;<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>                                                final short[] va = (short[]) a.getObject(pos);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>                                                        lresults[k] += va[k];<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>                                                }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>                                                result.set(lresults, pos);<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>                                        }<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>                                        break;<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>                                case Dataset.ARRAYINT32:<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>                                        is = a.getElementsPerItem();<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>                                        lresults = new long[is];<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>                                                pos[axis] = j;<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>                                                final int[] va = (int[]) a.getObject(pos);<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>                                                        lresults[k] += va[k];<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>                                                }<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>                                                result.set(lresults, pos);<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>                                        }<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>                                        break;<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>                                case Dataset.ARRAYINT64:<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>                                        is = a.getElementsPerItem();<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>                                        lresults = new long[is];<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>                                                pos[axis] = j;<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>                                                final long[] va = (long[]) a.getObject(pos);<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>                                                        lresults[k] += va[k];<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>                                                }<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>                                                result.set(lresults, pos);<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>                                        }<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>                                        break;<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>                                case Dataset.FLOAT32: case Dataset.FLOAT64:<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>                                        double dresult = 0.;<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>                                                if (!Double.isNaN(dresult)) {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>                                                        pos[axis] = j;<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>                                                        final double x = a.getDouble(pos);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(x)) {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>                                                                continue;<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>                                                        }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(x)) {<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>                                                                continue;<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>                                                        }<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>                                                        dresult += x;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>                                                }<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>                                                result.set(dresult, pos);<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>                                        }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>                                        break;<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>                                case Dataset.ARRAYFLOAT32: case Dataset.ARRAYFLOAT64:<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>                                        is = a.getElementsPerItem();<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>                                        CompoundDataset da = (CompoundDataset) a;<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>                                        double[] dvalues = new double[is];<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>                                        dresults = new double[is];<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>                                        for (int j = 0; j &lt; alen; j++) {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>                                                pos[axis] = j;<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>                                                da.getDoubleArray(dvalues, pos);<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>                                                boolean okay = true;<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>                                                for (int k = 0; k &lt; is; k++) {<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>                                                        final double val = dvalues[k];<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>                                                        if (ignoreNaNs &amp;&amp; Double.isNaN(val)) {<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>                                                                okay = false;<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>                                                                break;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>                                                        }<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>                                                        if (ignoreInfs &amp;&amp; Double.isInfinite(val)) {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>                                                                okay = false;<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>                                                                break;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>                                                        }<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>                                                }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>                                                if (okay) {<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>                                                        for (int k = 0; k &lt; is; k++) {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>                                                                dresults[k] += dvalues[k];<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>                                                        }<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>                                                }<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>                                                result.set(dresults, pos);<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>                                        }<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>                                        break;<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>                                }<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>                        }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>                }<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span><a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>                return result;<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>        }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span><a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>        /**<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>         * @param a<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>         * @return average deviation value of all items the dataset<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>         */<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>        public static Object averageDeviation(final Dataset a) {<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>                final IndexIterator it = a.getIterator();<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>                final int is = a.getElementsPerItem();<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span><a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>                if (is == 1) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>                        double mean = (Double) a.mean();<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>                        double sum = 0.0;<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span><a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>                        while (it.hasNext()) {<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>                                sum += Math.abs(a.getElementDoubleAbs(it.index) - mean);<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>                        }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>                        return sum / a.getSize();<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>                }<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span><a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>                double[] means = (double[]) a.mean();<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>                double[] sums = new double[is];<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>                while (it.hasNext()) {<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>                        for (int j = 0; j &lt; is; j++)<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>                                sums[j] += Math.abs(a.getElementDoubleAbs(it.index + j) - means[j]);<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>                }<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span><a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>                double n = a.getSize();<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>                for (int j = 0; j &lt; is; j++)<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>                        sums[j] /= n;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span><a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>                return sums;<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>        }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span><a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>        /**<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>         * The residual is the sum of squared differences<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>         * @param a<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>         * @param b<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>         * @return residual value<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>         */<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>        public static double residual(final Dataset a, final Dataset b) {<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>                return a.residual(b);<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>        /**<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>         * The residual is the sum of squared differences<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>         * @param a<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>         * @param b<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>         * @param w<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>         * @return residual value<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>         */<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        public static double weightedResidual(final Dataset a, final Dataset b, final Dataset w) {<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>                return a.residual(b, w, false);<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>        }<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span><a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>        /**<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>         * Calculate approximate outlier values. These are defined as the values in the dataset<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>         * that are approximately below and above the given thresholds - in terms of percentages<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>         * of dataset size.<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>         * &lt;p&gt;<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>         * It approximates by limiting the number of items (given by length) used internally by<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>         * data structures - the larger this is, the more accurate will those outlier values become.<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>         * The actual thresholds used are returned in the array.<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>         * &lt;p&gt;<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>         * Also, the low and high values will be made distinct if possible by adjusting the thresholds<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>         * @param a<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>         * @param lo percentage threshold for lower limit<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>         * @param hi percentage threshold for higher limit<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>         * @param length maximum number of items used internally, if negative, then unlimited<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>         * @return double array with low and high values, and low and high percentage thresholds<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>         */<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        public static double[] outlierValues(final Dataset a, double lo, double hi, final int length) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>                return outlierValues(a, null, true, lo, hi, length);<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>        }<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span><a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>        /**<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>         * Calculate approximate outlier values. These are defined as the values in the dataset<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>         * that are approximately below and above the given thresholds - in terms of percentages<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>         * of dataset size.<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>         * &lt;p&gt;<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>         * It approximates by limiting the number of items (given by length) used internally by<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>         * data structures - the larger this is, the more accurate will those outlier values become.<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>         * The actual thresholds used are returned in the array.<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>         * &lt;p&gt;<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>         * Also, the low and high values will be made distinct if possible by adjusting the thresholds<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>         * @param a<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>         * @param mask can be null<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>         * @param value value of mask to match to include for calculation<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>         * @param lo percentage threshold for lower limit<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>         * @param hi percentage threshold for higher limit<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>         * @param length maximum number of items used internally, if negative, then unlimited<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>         * @return double array with low and high values, and low and high percentage thresholds<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>         * @since 2.1<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>         */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>        public static double[] outlierValues(final Dataset a, final Dataset mask, final boolean value, double lo, double hi, final int length) {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>                if (lo &lt;= 0 || hi &lt;= 0 || lo &gt;= hi || hi &gt;= 100  || Double.isNaN(lo)|| Double.isNaN(hi)) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>                        throw new IllegalArgumentException("Thresholds must be between (0,100) and in order");<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>                }<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>                final int size = a.getSize();<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>                int nl = Math.max((int) ((lo*size)/100), 1);<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>                if (length &gt; 0 &amp;&amp; nl &gt; length)<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>                        nl = length;<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>                int nh = Math.max((int) (((100-hi)*size)/100), 1);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>                if (length &gt; 0 &amp;&amp; nh &gt; length)<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>                        nh = length;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span><a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>                IndexIterator it = mask == null ? a.getIterator() : a.getBooleanIterator(mask, value);<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>                double[] results = Math.max(nl, nh) &gt; 640 ? outlierValuesMap(a, it, nl, nh) : outlierValuesList(a, it, nl, nh);<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span><a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>                results[2] = results[2]*100./size;<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>                results[3] = 100. - results[3]*100./size;<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>                return results;<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>        }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>        static double[] outlierValuesMap(final Dataset a, final IndexIterator it, int nl, int nh) {<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>                final TreeMap&lt;Double, Integer&gt; lMap = new TreeMap&lt;Double, Integer&gt;();<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>                final TreeMap&lt;Double, Integer&gt; hMap = new TreeMap&lt;Double, Integer&gt;();<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span><a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>                int ml = 0;<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>                int mh = 0;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>                while (it.hasNext()) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>                        Double x = a.getElementDoubleAbs(it.index);<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>                        if (Double.isNaN(x)) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>                                continue;<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>                        }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>                        Integer i;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>                        if (ml == nl) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>                                Double k = lMap.lastKey();<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>                                if (x &lt; k) {<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>                                        i = lMap.get(k) - 1;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>                                        if (i == 0) {<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>                                                lMap.remove(k);<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                                        } else {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>                                                lMap.put(k, i);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>                                        }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>                                        i = lMap.get(x);<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                                        if (i == null) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                                                lMap.put(x, 1);<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                                        } else {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                                                lMap.put(x, i + 1);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                                        }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>                                }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                        } else {<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                                i = lMap.get(x);<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                                if (i == null) {<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>                                        lMap.put(x, 1);<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>                                } else {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>                                        lMap.put(x, i + 1);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>                                }<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>                                ml++;<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>                        }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span><a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>                        if (mh == nh) {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>                                Double k = hMap.firstKey();<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>                                if (x &gt; k) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>                                        i = hMap.get(k) - 1;<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>                                        if (i == 0) {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>                                                hMap.remove(k);<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>                                        } else {<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>                                                hMap.put(k, i);<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>                                        }<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>                                        i = hMap.get(x);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>                                        if (i == null) {<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>                                                hMap.put(x, 1);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>                                        } else {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>                                                hMap.put(x, i+1);<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>                                        }<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>                                }<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>                        } else {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>                                i = hMap.get(x);<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>                                if (i == null) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>                                        hMap.put(x, 1);<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>                                } else {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>                                        hMap.put(x, i+1);<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>                                }<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>                                mh++;<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>                        }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>                }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span><a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>                // Attempt to make values distinct<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>                double lx = lMap.lastKey();<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>                double hx = hMap.firstKey();<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>                if (lx &gt;= hx) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>                        Double h = hMap.higherKey(lx);<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>                        if (h != null) {<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>                                hx = h;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>                                mh--;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>                        } else {<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>                                Double l = lMap.lowerKey(hx);<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>                                if (l != null) {<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>                                        lx = l;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>                                        ml--;<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>                                }<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>                        }<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>                        <a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>                }<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>                return new double[] {lMap.lastKey(), hMap.firstKey(), ml, mh};<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>        }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        static double[] outlierValuesList(final Dataset a, final IndexIterator it, int nl, int nh) {<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>                final List&lt;Double&gt; lList = new ArrayList&lt;Double&gt;(nl);<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>                final List&lt;Double&gt; hList = new ArrayList&lt;Double&gt;(nh);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span><a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>                double lx = Double.POSITIVE_INFINITY;<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>                double hx = Double.NEGATIVE_INFINITY;<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span><a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>                while (it.hasNext()) {<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>                        double x = a.getElementDoubleAbs(it.index);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>                        if (Double.isNaN(x)) {<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>                                continue;<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>                        }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>                        if (x &lt; lx) {<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>                                if (lList.size() == nl) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>                                        lList.remove(lx);<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>                                }<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>                                lList.add(x);<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>                                lx = Collections.max(lList);<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>                        } else if (x == lx) {<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>                                if (lList.size() &lt; nl) {<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>                                        lList.add(x);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>                                }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>                        }<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span><a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>                        if (x &gt; hx) {<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>                                if (hList.size() == nh) {<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>                                        hList.remove(hx);<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>                                }<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>                                hList.add(x);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>                                hx = Collections.min(hList);<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>                        } else if (x == hx) {<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>                                if (hList.size() &lt; nh) {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>                                        hList.add(x);<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>                                }<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>                        }<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>                }<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>                nl = lList.size();<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>                nh = hList.size();<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span><a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>                // Attempt to make values distinct<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>                if (lx &gt;= hx) {<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>                        Collections.sort(hList);<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>                        for (double h : hList) {<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>                                if (h &gt; hx) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>                                        hx = h;<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>                                        break;<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>                                }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>                                nh--;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>                        }<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>                        if (lx &gt;= hx) {<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>                                Collections.sort(lList);<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>                                Collections.reverse(lList);<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>                                for (double l : lList) {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>                                        if (l &lt; lx) {<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>                                                lx = l;<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>                                                break;<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>                                        }<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>                                        nl--;<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>                                }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>                        }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>                }<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>                return new double[] {lx, hx, nl, nh};<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span><a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>        /**<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span>         * See {@link #covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)} with b = null, rowvar = true, bias = false and ddof = null.<a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>         * @param a<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>         * @return covariance array of a<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>         */<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>        public static Dataset covariance(final Dataset a) {<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span>                return covariance(a, true, false, null); <a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>        }<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span><a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>        /**<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>         * See {@link #covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)} with b = null.<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>         * @param a<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span>         * @return covariance array of a<a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>         * @since 2.0<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>         */<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span>        public static Dataset covariance(final Dataset a, <a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>                        boolean rowvar, boolean bias, Integer ddof) {<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>                return covariance(a, null, rowvar, bias, ddof);<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span>        }<a name="line.1871"></a>
+<span class="sourceLineNo">1872</span><a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>        /**<a name="line.1873"></a>
+<span class="sourceLineNo">1874</span>         * See {@link #covariance(Dataset a, Dataset b, boolean rowvar, boolean bias, Integer ddof)} with b = null, rowvar = true, bias = false and ddof = null.<a name="line.1874"></a>
+<span class="sourceLineNo">1875</span>         * @param a<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>         * @return covariance array of a concatenated with b<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>         */<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>        public static Dataset covariance(final Dataset a, final Dataset b) {<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>                return covariance(a, b, true, false, null);<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>        }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span><a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>        /**<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>         * Calculate the covariance matrix (array) of a concatenated with b. This <a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>         * method is directly based on the implementation in numpy (cov). <a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>         * @param a Array containing multiple variable and observations. Each row represents a variable, each column an observation.<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>         * @param b An extra set of variables and observations. Must be of same type as a and have a compatible shape. <a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>         * @param rowvar When true (default), each row is a variable; when false each column is a variable.<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>         * @param bias Default normalisation is (N - 1) - N is number of observations. If set true, normalisation is (N). <a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>         * @param ddof Default normalisation is (N - 1). If ddof is set, then normalisation is (N - ddof).<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>         * @return covariance array of a concatenated with b<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>         * @since 2.0<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>         */<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span>        public static Dataset covariance (final Dataset a, final Dataset b, <a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>                        boolean rowvar, boolean bias, Integer ddof) {<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>                <a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>                //Create a working copy of the dataset &amp; check its rank.<a name="line.1896"></a>
+<span class="sourceLineNo">1897</span>                Dataset vars = a.clone();<a name="line.1897"></a>
+<span class="sourceLineNo">1898</span>                if (a.getRank() == 1) {<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>                        vars.setShape(1, a.getShape()[0]);<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>                }<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>                <a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>                //1D of variables, so consider rows as variables<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>                if (vars.getShape()[0] == 1) {<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span>                        rowvar = true;<a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>                }<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>                <a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>                //nr is the number of records; axis is index<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>                int nr, axis;<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>                if (rowvar) {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>                        nr = vars.getShape()[1];<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>                        axis = 0;<a name="line.1911"></a>
+<span class="sourceLineNo">1912</span>                } else {<a name="line.1912"></a>
+<span class="sourceLineNo">1913</span>                        nr = vars.getShape()[0];<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>                        axis = 1;<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>                }<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>                <a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>                //Set the reduced degrees of freedom &amp; normalisation factor<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>                if (ddof == null) {<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span>                        if (bias == false) {<a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>                                ddof = 1;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>                        } else {<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>                                ddof = 0;<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>                        }<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>                }<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>                double norm_fact = nr - ddof;<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>                if (norm_fact &lt;= 0.) {<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>                        //TODO Some sort of warning here?<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>                        norm_fact = 0.;<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>                }<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>                <a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>                //Concatenate additional set of variables with main set<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>                if (b != null) {<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>                        //Create a working copy of the dataset &amp; check its rank.<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>                        Dataset extraVars = b.clone();<a name="line.1934"></a>
+<span class="sourceLineNo">1935</span>                        if (b.getRank() == 1) {<a name="line.1935"></a>
+<span class="sourceLineNo">1936</span>                                extraVars.setShape(1, a.getShape()[0]);<a name="line.1936"></a>
+<span class="sourceLineNo">1937</span>                        }<a name="line.1937"></a>
+<span class="sourceLineNo">1938</span>                        vars = DatasetUtils.concatenate(new Dataset[]{vars, extraVars}, axis);<a name="line.1938"></a>
+<span class="sourceLineNo">1939</span>                }<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>                <a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>                //Calculate deviations &amp; covariance matrix<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>                Dataset varsMean = vars.mean(1-axis, false);<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>                //-vars &amp; varsMean need same shape (this is a hack!)<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>                int[] meanShape = vars.getShape();<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>                meanShape[1-axis] = 1;<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>                varsMean.setShape(meanShape);<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>                vars.isubtract(varsMean);<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>                Dataset cov;<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>                if (rowvar) {<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>                        cov = Maths.divide(LinearAlgebra.dotProduct(vars, Maths.conjugate(vars.transpose())), norm_fact).squeeze();<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>                } else {<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>                        cov = Maths.divide(LinearAlgebra.dotProduct(vars.transpose(), Maths.conjugate(vars)), norm_fact).squeeze();<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>                }<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>                return cov;<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>        }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>}<a name="line.1956"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StrideIterator.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StrideIterator.html
new file mode 100644
index 0000000..ea03691
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StrideIterator.html
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Arrays;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Class to run over a contiguous dataset using strides<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public class StrideIterator extends SliceIterator {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private int[] stride;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        private int[] delta;  // reset values<a name="line.23"></a>
+<span class="sourceLineNo">024</span>        private int nstart;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        private int element;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        private boolean zero;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public StrideIterator(final int[] shape) {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>                this(shape, null, 0);<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public StrideIterator(final int isize, final int[] shape) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>                this(isize, shape, null, 0);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public StrideIterator(final int[] shape, final int[] strides) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                this(shape, strides, 0);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public StrideIterator(final int[] shape, final int[] strides, final int offset) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                this(1, shape, strides, offset);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                this(isize, shape, strides, offset, 0);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset, final int element) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                int rank = shape.length;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                start = new int[rank];<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                stop = shape;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                step = new int[rank];<a name="line.52"></a>
+<span class="sourceLineNo">053</span>                Arrays.fill(step, 1);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                this.sshape = shape;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>                init(isize, shape, strides, offset, element);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                reset();<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public StrideIterator(final int isize, final int[] shape, final int[] start, final int[] stop, final int[] step) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                this(isize, shape, null, 0, start, stop, step);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>        public StrideIterator(final int isize, final int[] shape, final int[] oStrides, final int oOffset, final int[] start, final int[] stop, final int[] step) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                this(isize, shape, oStrides, oOffset, new SliceND(shape, start, stop, step));<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        public StrideIterator(final int isize, final int[] shape, final int[] strides, final int offset, final SliceND slice) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                start = slice.getStart();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                stop = slice.getStop();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                step = slice.getStep();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                this.sshape = slice.getShape();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                init(isize, shape, strides, offset, 0);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                reset();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        }<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        private void init(final int isize, final int[] shape, final int[] strides, int offset, final int element) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                this.isize = isize;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                istep = isize;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                this.shape = shape;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                int rank = shape.length;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                endrank = rank - 1;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                pos = new int[rank];<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                delta = new int[rank];<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                this.element = element;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                if (strides == null) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        offset = 0;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                        stride = new int[rank];<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                        int s = isize;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        for (int j = endrank; j &gt;= 0; j--) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                                stride[j] = s;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                                s *= shape[j];<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                } else {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                        stride = strides.clone();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>                for (int j = endrank; j &gt;= 0; j--) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                        int t = stride[j];<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                        offset += t * start[j];<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                        t *= step[j];<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                        stride[j] = t;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>                        int s = sshape[j];<a name="line.104"></a>
+<span class="sourceLineNo">105</span>                        if (!zero) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>                                zero = s == 0;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>                        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                        delta[j] = s * t;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>                nstart = offset;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        void calcGap() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                // do nothing<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>        @Override<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        public boolean hasNext() {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                if (zero) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                        return false;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>                // now move on one position<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                int j = endrank;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                if (j &lt; 0) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        index += istep;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                        return index &lt; istep;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                for (; j &gt;= 0; j--) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                        index += stride[j];<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                        final int s = step[j];<a name="line.133"></a>
+<span class="sourceLineNo">134</span>                        final int p = pos[j] + s;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                        if ((s &gt; 0 &amp;&amp; p &lt; stop[j]) || (s &lt; 0 &amp;&amp; p &gt; stop[j])) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                                pos[j] = p;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                                break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        pos[j] = start[j];<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                        index -= delta[j]; // reset this dimension<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                return j &gt;= 0;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>        @Override<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        public int[] getPos() {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                return pos;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>        @Override<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public void reset() {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                System.arraycopy(start, 0, pos, 0, start.length);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                if (endrank &gt;= 0) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                        pos[endrank] -= step[endrank];<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                        index = nstart - stride[endrank];<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                } else {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                        index = -istep;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                index += element;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>}<a name="line.161"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StringDataset.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StringDataset.html
new file mode 100644
index 0000000..d29dd53
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StringDataset.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.text.MessageFormat;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * Extend dataset for objects<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public class StringDataset extends StringDatasetBase {<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        // pin UID to base class<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * Create a null dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        StringDataset() {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                super();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        }<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Create a null-filled dataset of given shape<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * @param shape<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        StringDataset(final int... shape) {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                super(shape);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        }<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * Create a dataset using given data<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param data<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param shape<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         *            (can be null to create 1D dataset)<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        StringDataset(final String[] data, int... shape) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                super(data, shape);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Copy a dataset<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param dataset<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        StringDataset(final StringDataset dataset) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>                super(dataset);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>        /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * Cast a dataset to this class type<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @param dataset<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        StringDataset(final Dataset dataset) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                super(dataset);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public StringDataset getView(boolean deepCopyMetadata) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                StringDataset view = new StringDataset();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                view.setData();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return view;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        @Override<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        public StringDataset clone() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                return new StringDataset(this);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        }<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        @Override<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        public StringDataset getSlice(SliceIterator siter) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                StringDatasetBase base = super.getSlice(siter);<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>                StringDataset slice = new StringDataset();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>                copyToView(base, slice, false, false);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                slice.setData();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                return slice;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>        /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         * Create a dataset from an object which could be a Java list, array (of arrays...)<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * or Number. Ragged sequences or arrays are padded with zeros.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * <a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @param obj<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * @return dataset with contents given by input<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        static StringDataset createFromObject(final Object obj) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                StringDatasetBase result = StringDatasetBase.createFromObject(obj);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                StringDataset ds = new StringDataset(result.data, result.shape);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                if (result.shape.length == 0)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                        ds.setShape(result.shape); // special case of single item <a name="line.99"></a>
+<span class="sourceLineNo">100</span>                return ds;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>        /**<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @param shape<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @return a dataset filled with ones<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         */<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        static StringDataset ones(final int... shape) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>        @Override<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public boolean getElementBooleanAbs(int index) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>        @Override<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        public double getElementDoubleAbs(int index) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>        @Override<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        public long getElementLongAbs(int index) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>        @Override<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        public double getDouble() {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        }<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>        @Override<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        public double getDouble(int i) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>        @Override<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        public double getDouble(int i, int j) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>        @Override<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        public double getDouble(int... pos) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>        @Override<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        public float getFloat() {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>        @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        public float getFloat(int i) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public float getFloat(int i, int j) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>        @Override<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        public float getFloat(int... pos) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>        @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        public long getLong() {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>        @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        public long getLong(int i) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>        @Override<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        public long getLong(int i, int j) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        @Override<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public long getLong(int... pos) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public int getInt(int i) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>        @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        public int getInt(int i, int j) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>        @Override<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        public int getInt(int... pos) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>        @Override<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        public short getShort() {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>        @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        public short getShort(int i) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>        @Override<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        public short getShort(int i, int j) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>        @Override<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        public short getShort(int... pos) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>        @Override<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        public byte getByte() {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>        @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        public byte getByte(int i) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>        @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        public byte getByte(int i, int j) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        @Override<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        public byte getByte(int... pos) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>        @Override<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        public boolean getBoolean() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        }<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>        @Override<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        public boolean getBoolean(int i) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>        @Override<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        public boolean getBoolean(int i, int j) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>        @Override<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        public boolean getBoolean(int... pos) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>        @Override<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        public String getStringAbs(final int index) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>                return stringFormat instanceof MessageFormat ? stringFormat.format(data[index]) :<a name="line.263"></a>
+<span class="sourceLineNo">264</span>                                String.format("%s", data[index]);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        }<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>        @Override<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        public boolean containsInfs() {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>                return false;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>        @Override<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        public boolean containsNans() {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                return false;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>        @Override<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        public StringDataset iadd(Object o) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>        @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        public StringDataset isubtract(Object o) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>        @Override<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        public StringDataset imultiply(Object o) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>        @Override<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        public StringDataset idivide(Object o) {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        @Override<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        public StringDataset iremainder(Object o) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>        @Override<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        public StringDataset ifloor() {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span><a name="line.306"></a>
+<span class="sourceLineNo">307</span>        @Override<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        public StringDataset ipower(Object o) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>        @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        public double residual(Object o) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                throw new UnsupportedOperationException("Unsupported method for class");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        }<a name="line.315"></a>
+<span class="sourceLineNo">316</span>}<a name="line.316"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StringDatasetBase.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StringDatasetBase.html
new file mode 100644
index 0000000..a24975a
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/StringDatasetBase.html
@@ -0,0 +1,1040 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>// This is generated from DoubleDataset.java by fromdouble.py<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>package org.eclipse.january.dataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.ArrayList;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.Arrays;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.List;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Set;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.TreeSet;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.StatisticsMetadata;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * Extend dataset for String values // PRIM_TYPE<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public class StringDatasetBase extends AbstractDataset {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        // pin UID to base class<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        private static final long serialVersionUID = Dataset.serialVersionUID;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        protected String[] data; // subclass alias // PRIM_TYPE<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>        @Override<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        protected void setData() {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                data = (String[]) odata; // PRIM_TYPE<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>        protected static String[] createArray(final int size) { // PRIM_TYPE<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                String[] array = null; // PRIM_TYPE<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>                try {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                        array = new String[size]; // PRIM_TYPE<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                } catch (OutOfMemoryError e) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>                        logger.error("The size of the dataset ({}) that is being created is too large "<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                                        + "and there is not enough memory to hold it.", size);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                        throw new OutOfMemoryError("The dimensions given are too large, and there is "<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                                        + "not enough memory available in the Java Virtual Machine");<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                return array;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>        }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public int getDType() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>                return STRING; // DATA_TYPE<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>        /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         * Create a null dataset<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        StringDatasetBase() {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>        /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         * Create a zero-filled dataset of given shape<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @param shape<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        StringDatasetBase(final int... shape) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                if (shape != null) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>                        size = ShapeUtils.calcSize(shape);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        this.shape = shape.clone();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>                        try {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                odata = data = createArray(size);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                        } catch (Throwable t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                                throw new IllegalArgumentException(t);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>        /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>         * Create a dataset using given data<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param data<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param shape<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         *            (can be null to create 1D dataset)<a name="line.87"></a>
+<span class="sourceLineNo">088</span>         */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        StringDatasetBase(final String[] data, int... shape) { // PRIM_TYPE<a name="line.89"></a>
+<span class="sourceLineNo">090</span>                if (data == null) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>                        throw new IllegalArgumentException("Data must not be null");<a name="line.91"></a>
+<span class="sourceLineNo">092</span>                }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                if (shape == null || shape.length == 0) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                        shape = new int[] { data.length };<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                size = ShapeUtils.calcSize(shape);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                if (size != data.length) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                        throw new IllegalArgumentException(String.format("Shape %s is not compatible with size of data array, %d",<a name="line.98"></a>
+<span class="sourceLineNo">099</span>                                        Arrays.toString(shape), data.length));<a name="line.99"></a>
+<span class="sourceLineNo">100</span>                }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>                this.shape = size == 0 ? null : shape.clone();<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>                odata = this.data = data;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * Copy a dataset<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * @param dataset<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        StringDatasetBase(final StringDatasetBase dataset) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                copyToView(dataset, this, true, true);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>                try {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                        if (dataset.stride == null) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                                if (dataset.data != null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                                        odata = data = dataset.data.clone();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                                }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                        } else {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                                offset = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>                                stride = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>                                base = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>                                odata = data = createArray(size);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>                                IndexIterator iter = dataset.getIterator();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>                                for (int i = 0; iter.hasNext(); i++) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>                                        data[i] = dataset.data[iter.index];<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                                }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                } catch (Throwable t) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>                        throw new IllegalArgumentException(t);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>        /**<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * Copy and cast a dataset to this class type<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @param dataset<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        StringDatasetBase(final Dataset dataset) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                copyToView(dataset, this, true, false);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                offset = 0;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                stride = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                base = null;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                        odata = data = createArray(size);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                } catch (Throwable t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                        throw new IllegalArgumentException(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                IndexIterator iter = dataset.getIterator();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                for (int i = 0; iter.hasNext(); i++) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        data[i] = dataset.getStringAbs(iter.index); // GET_ELEMENT_WITH_CAST<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>        @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public boolean equals(Object obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                if (!super.equals(obj)) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                        return false;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                }<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>                if (getRank() == 0 &amp;&amp; !getClass().equals(obj.getClass())) // already true for zero-rank dataset<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        return true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>                StringDatasetBase other = (StringDatasetBase) obj;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>//              if (size == 1) // for zero-rank datasets<a name="line.166"></a>
+<span class="sourceLineNo">167</span>//                      return getAbs(offset) == other.getAbs(other.offset);<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>                IndexIterator iter = getIterator();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                IndexIterator oiter = other.getIterator();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                        if (!data[iter.index].equals(other.data[oiter.index])) // OBJECT_UNEQUAL<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                return false;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                return true;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        public int hashCode() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>                return super.hashCode();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        }<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>        @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        public StringDatasetBase clone() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>                return new StringDatasetBase(this);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>        /**<a name="line.188"></a>
+<span class="sourceLineNo">189</span>         * Create a dataset from an object which could be a Java list, array (of arrays...) or Number. Ragged<a name="line.189"></a>
+<span class="sourceLineNo">190</span>         * sequences or arrays are padded with zeros.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>         *<a name="line.191"></a>
+<span class="sourceLineNo">192</span>         * @param obj<a name="line.192"></a>
+<span class="sourceLineNo">193</span>         * @return dataset with contents given by input<a name="line.193"></a>
+<span class="sourceLineNo">194</span>         */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        static StringDatasetBase createFromObject(final Object obj) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                StringDatasetBase result = new StringDatasetBase();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>                if (obj != null) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>                        result.shape = ShapeUtils.getShapeFromObject(obj);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>                        result.size = ShapeUtils.calcSize(result.shape);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>                        try {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>                                result.odata = result.data = createArray(result.size);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>                        } catch (Throwable t) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>                                logger.error("Could not create a dataset of shape {}", Arrays.toString(result.shape), t);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>                                throw new IllegalArgumentException(t);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>                        }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>                        int[] pos = new int[result.shape.length];<a name="line.209"></a>
+<span class="sourceLineNo">210</span>                        result.fillData(obj, 0, pos);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>                }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>                return result;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>        /**<a name="line.216"></a>
+<span class="sourceLineNo">217</span>         * @param shape<a name="line.217"></a>
+<span class="sourceLineNo">218</span>         * @return a dataset filled with ones<a name="line.218"></a>
+<span class="sourceLineNo">219</span>         */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        static StringDatasetBase ones(final int... shape) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                return new StringDatasetBase(shape).fill(1);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>        @Override<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        public StringDatasetBase fill(final Object obj) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                setDirty();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>                String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                IndexIterator iter = getIterator();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                while (iter.hasNext()) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                        data[iter.index] = dv;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>                }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>                return this;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>        /**<a name="line.236"></a>
+<span class="sourceLineNo">237</span>         * This is a typed version of {@link #getBuffer()}<a name="line.237"></a>
+<span class="sourceLineNo">238</span>         * @return data buffer as linear array<a name="line.238"></a>
+<span class="sourceLineNo">239</span>         */<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        public String[] getData() { // PRIM_TYPE<a name="line.240"></a>
+<span class="sourceLineNo">241</span>                return data;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>        @Override<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        protected int getBufferLength() {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>                if (data == null)<a name="line.246"></a>
+<span class="sourceLineNo">247</span>                        return 0;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>                return data.length;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>        @Override<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        public StringDatasetBase getView(boolean deepCopyMetadata) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>                StringDatasetBase view = new StringDatasetBase();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>                copyToView(this, view, true, deepCopyMetadata);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                view.setData();<a name="line.255"></a>
+<span class="sourceLineNo">256</span>                return view;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>        /**<a name="line.259"></a>
+<span class="sourceLineNo">260</span>         * Get a value from an absolute index of the internal array. This is an internal method with no checks so can be<a name="line.260"></a>
+<span class="sourceLineNo">261</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.261"></a>
+<span class="sourceLineNo">262</span>         *<a name="line.262"></a>
+<span class="sourceLineNo">263</span>         * @param index<a name="line.263"></a>
+<span class="sourceLineNo">264</span>         *            absolute index<a name="line.264"></a>
+<span class="sourceLineNo">265</span>         * @return value<a name="line.265"></a>
+<span class="sourceLineNo">266</span>         */<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        public String getAbs(final int index) { // PRIM_TYPE<a name="line.267"></a>
+<span class="sourceLineNo">268</span>                return data[index];<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>        @Override<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        public boolean getElementBooleanAbs(final int index) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>                return false;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>        @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        public double getElementDoubleAbs(final int index) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>                return 0;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>        @Override<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        public long getElementLongAbs(final int index) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>                return 0;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>        @Override<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        public Object getObjectAbs(final int index) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>                return data[index];<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>        @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        public String getStringAbs(final int index) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>                return stringFormat == null ?  data[index] : // FORMAT_STRING<a name="line.293"></a>
+<span class="sourceLineNo">294</span>                        stringFormat.format(data[index]);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        }<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>        /**<a name="line.297"></a>
+<span class="sourceLineNo">298</span>         * Set a value at absolute index in the internal array. This is an internal method with no checks so can be<a name="line.298"></a>
+<span class="sourceLineNo">299</span>         * dangerous. Use with care or ideally with an iterator.<a name="line.299"></a>
+<span class="sourceLineNo">300</span>         *<a name="line.300"></a>
+<span class="sourceLineNo">301</span>         * @param index<a name="line.301"></a>
+<span class="sourceLineNo">302</span>         *            absolute index<a name="line.302"></a>
+<span class="sourceLineNo">303</span>         * @param val<a name="line.303"></a>
+<span class="sourceLineNo">304</span>         *            new value<a name="line.304"></a>
+<span class="sourceLineNo">305</span>         */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        public void setAbs(final int index, final String val) { // PRIM_TYPE<a name="line.306"></a>
+<span class="sourceLineNo">307</span>                setDirty();<a name="line.307"></a>
+<span class="sourceLineNo">308</span>                data[index] = val;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>        @Override<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        protected void setItemDirect(final int dindex, final int sindex, final Object src) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>                setDirty();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>                String[] dsrc = (String[]) src; // PRIM_TYPE<a name="line.314"></a>
+<span class="sourceLineNo">315</span>                data[dindex] = dsrc[sindex];<a name="line.315"></a>
+<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>        @Override<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        public void setObjectAbs(final int index, final Object obj) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>                if (index &lt; 0 || index &gt; data.length) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>                        throw new IndexOutOfBoundsException("Index given is outside dataset");<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>                setAbs(index, obj.toString()); // FROM_OBJECT<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>        /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>         * @return item in first position<a name="line.328"></a>
+<span class="sourceLineNo">329</span>         * @since 2.0<a name="line.329"></a>
+<span class="sourceLineNo">330</span>         */<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        public String get() { // PRIM_TYPE<a name="line.331"></a>
+<span class="sourceLineNo">332</span>                return data[getFirst1DIndex()];<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>        /**<a name="line.335"></a>
+<span class="sourceLineNo">336</span>         * @param i<a name="line.336"></a>
+<span class="sourceLineNo">337</span>         * @return item in given position<a name="line.337"></a>
+<span class="sourceLineNo">338</span>         */<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        public String get(final int i) { // PRIM_TYPE<a name="line.339"></a>
+<span class="sourceLineNo">340</span>                return data[get1DIndex(i)];<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        }<a name="line.341"></a>
+<span class="sourceLineNo">342</span><a name="line.342"></a>
+<span class="sourceLineNo">343</span>        /**<a name="line.343"></a>
+<span class="sourceLineNo">344</span>         * @param i<a name="line.344"></a>
+<span class="sourceLineNo">345</span>         * @param j<a name="line.345"></a>
+<span class="sourceLineNo">346</span>         * @return item in given position<a name="line.346"></a>
+<span class="sourceLineNo">347</span>         */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        public String get(final int i, final int j) { // PRIM_TYPE<a name="line.348"></a>
+<span class="sourceLineNo">349</span>                return data[get1DIndex(i, j)];<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>        /**<a name="line.352"></a>
+<span class="sourceLineNo">353</span>         * @param pos<a name="line.353"></a>
+<span class="sourceLineNo">354</span>         * @return item in given position<a name="line.354"></a>
+<span class="sourceLineNo">355</span>         */<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        public String get(final int... pos) { // PRIM_TYPE<a name="line.356"></a>
+<span class="sourceLineNo">357</span>                return data[get1DIndex(pos)];<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>        @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        public Object getObject() {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>                return get(); // CLASS_TYPE<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>        @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        public Object getObject(final int i) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                return get(i); // CLASS_TYPE<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>        @Override<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        public Object getObject(final int i, final int j) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                return get(i, j); // CLASS_TYPE<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>        @Override<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        public Object getObject(final int... pos) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                return get(pos); // CLASS_TYPE<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>        @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        public String getString() {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>                return getStringAbs(getFirst1DIndex());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>        @Override<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        public String getString(final int i) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>                return getStringAbs(get1DIndex(i));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>        @Override<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        public String getString(final int i, final int j) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>                return getStringAbs(get1DIndex(i, j));<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>        @Override<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        public String getString(final int... pos) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span>                return getStringAbs(get1DIndex(pos));<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        }<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>        @Override<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        public double getDouble() {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>                return 0;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>        @Override<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        public double getDouble(final int i) {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>                return 0;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>        }<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>        @Override<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        public double getDouble(final int i, final int j) {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>                return 0;<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        }<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span>        @Override<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        public double getDouble(final int... pos) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>                return 0;<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        }<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span>        @Override<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        public float getFloat() {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>                return 0;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>        }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>        @Override<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        public float getFloat(final int i) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>                return 0;<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>        @Override<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        public float getFloat(final int i, final int j) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>                return 0;<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>        @Override<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        public float getFloat(final int... pos) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>                return 0;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>        @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        public long getLong() {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>                return 0;<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span><a name="line.444"></a>
+<span class="sourceLineNo">445</span>        @Override<a name="line.445"></a>
+<span class="sourceLineNo">446</span>        public long getLong(final int i) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>                return 0;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>        @Override<a name="line.450"></a>
+<span class="sourceLineNo">451</span>        public long getLong(final int i, final int j) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>                return 0;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span>        @Override<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        public long getLong(final int... pos) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>                return 0;<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        }<a name="line.458"></a>
+<span class="sourceLineNo">459</span><a name="line.459"></a>
+<span class="sourceLineNo">460</span>        @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>        public int getInt() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                return 0;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>        @Override<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        public int getInt(final int i) {<a name="line.466"></a>
+<span class="sourceLineNo">467</span>                return 0;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>        }<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>        @Override<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        public int getInt(final int i, final int j) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>                return 0;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>        @Override<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        public int getInt(final int... pos) {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>                return 0;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span><a name="line.479"></a>
+<span class="sourceLineNo">480</span>        @Override<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        public short getShort() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>                return 0;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        }<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>        @Override<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        public short getShort(final int i) {<a name="line.486"></a>
+<span class="sourceLineNo">487</span>                return 0;<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        }<a name="line.488"></a>
+<span class="sourceLineNo">489</span><a name="line.489"></a>
+<span class="sourceLineNo">490</span>        @Override<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        public short getShort(final int i, final int j) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>                return 0;<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>        @Override<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        public short getShort(final int... pos) {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>                return 0;<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>        @Override<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        public byte getByte() {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>                return 0;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>        @Override<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        public byte getByte(final int i) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>                return 0;<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span>        @Override<a name="line.510"></a>
+<span class="sourceLineNo">511</span>        public byte getByte(final int i, final int j) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>                return 0;<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>        @Override<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        public byte getByte(final int... pos) {<a name="line.516"></a>
+<span class="sourceLineNo">517</span>                return 0;<a name="line.517"></a>
+<span class="sourceLineNo">518</span>        }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span>        @Override<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        public boolean getBoolean() {<a name="line.521"></a>
+<span class="sourceLineNo">522</span>                return false;<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span>        @Override<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        public boolean getBoolean(final int i) {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>                return false;<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        }<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span>        @Override<a name="line.530"></a>
+<span class="sourceLineNo">531</span>        public boolean getBoolean(final int i, final int j) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>                return false;<a name="line.532"></a>
+<span class="sourceLineNo">533</span>        }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span>        @Override<a name="line.535"></a>
+<span class="sourceLineNo">536</span>        public boolean getBoolean(final int... pos) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>                return false;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>        }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span>        /**<a name="line.540"></a>
+<span class="sourceLineNo">541</span>         * Sets the value at first point to the passed value. The dataset must not be null<a name="line.541"></a>
+<span class="sourceLineNo">542</span>         *<a name="line.542"></a>
+<span class="sourceLineNo">543</span>         * @param value<a name="line.543"></a>
+<span class="sourceLineNo">544</span>         * @since 2.0<a name="line.544"></a>
+<span class="sourceLineNo">545</span>         */<a name="line.545"></a>
+<span class="sourceLineNo">546</span>        public void setItem(final String value) { // PRIM_TYPE<a name="line.546"></a>
+<span class="sourceLineNo">547</span>                setAbs(getFirst1DIndex(), value);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>        }<a name="line.548"></a>
+<span class="sourceLineNo">549</span><a name="line.549"></a>
+<span class="sourceLineNo">550</span>        /**<a name="line.550"></a>
+<span class="sourceLineNo">551</span>         * Sets the value at a particular point to the passed value. The dataset must be 1D<a name="line.551"></a>
+<span class="sourceLineNo">552</span>         *<a name="line.552"></a>
+<span class="sourceLineNo">553</span>         * @param value<a name="line.553"></a>
+<span class="sourceLineNo">554</span>         * @param i<a name="line.554"></a>
+<span class="sourceLineNo">555</span>         */<a name="line.555"></a>
+<span class="sourceLineNo">556</span>        public void setItem(final String value, final int i) { // PRIM_TYPE<a name="line.556"></a>
+<span class="sourceLineNo">557</span>                setAbs(get1DIndex(i), value);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>        /**<a name="line.560"></a>
+<span class="sourceLineNo">561</span>         * Sets the value at a particular point to the passed value. The dataset must be 2D<a name="line.561"></a>
+<span class="sourceLineNo">562</span>         *<a name="line.562"></a>
+<span class="sourceLineNo">563</span>         * @param value<a name="line.563"></a>
+<span class="sourceLineNo">564</span>         * @param i<a name="line.564"></a>
+<span class="sourceLineNo">565</span>         * @param j<a name="line.565"></a>
+<span class="sourceLineNo">566</span>         */<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        public void setItem(final String value, final int i, final int j) { // PRIM_TYPE<a name="line.567"></a>
+<span class="sourceLineNo">568</span>                setAbs(get1DIndex(i, j), value);<a name="line.568"></a>
+<span class="sourceLineNo">569</span>        }<a name="line.569"></a>
+<span class="sourceLineNo">570</span><a name="line.570"></a>
+<span class="sourceLineNo">571</span>        /**<a name="line.571"></a>
+<span class="sourceLineNo">572</span>         * Sets the value at a particular point to the passed value<a name="line.572"></a>
+<span class="sourceLineNo">573</span>         *<a name="line.573"></a>
+<span class="sourceLineNo">574</span>         * @param value<a name="line.574"></a>
+<span class="sourceLineNo">575</span>         * @param pos<a name="line.575"></a>
+<span class="sourceLineNo">576</span>         */<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        public void setItem(final String value, final int... pos) { // PRIM_TYPE<a name="line.577"></a>
+<span class="sourceLineNo">578</span>                setAbs(get1DIndex(pos), value);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>        }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>        @Override<a name="line.581"></a>
+<span class="sourceLineNo">582</span>        public void set(final Object obj) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>                setItem(obj.toString()); // FROM_OBJECT<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>        @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        public void set(final Object obj, final int i) {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>                setItem(obj.toString(), i); // FROM_OBJECT<a name="line.588"></a>
+<span class="sourceLineNo">589</span>        }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>        @Override<a name="line.591"></a>
+<span class="sourceLineNo">592</span>        public void set(final Object obj, final int i, final int j) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>                setItem(obj.toString(), i, j); // FROM_OBJECT<a name="line.593"></a>
+<span class="sourceLineNo">594</span>        }<a name="line.594"></a>
+<span class="sourceLineNo">595</span><a name="line.595"></a>
+<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        public void set(final Object obj, int... pos) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>                if (pos == null || (pos.length == 0 &amp;&amp; shape.length &gt; 0)) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>                        pos = new int[shape.length];<a name="line.599"></a>
+<span class="sourceLineNo">600</span>                }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>                setItem(obj.toString(), pos); // FROM_OBJECT<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        }<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span>        @Override<a name="line.605"></a>
+<span class="sourceLineNo">606</span>        public void resize(int... newShape) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>                setDirty();<a name="line.607"></a>
+<span class="sourceLineNo">608</span>                final IndexIterator iter = getIterator();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>                final int nsize = ShapeUtils.calcSize(newShape);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                final String[] ndata; // PRIM_TYPE<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                try {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>                        ndata = createArray(nsize);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>                } catch (Throwable t) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>                        logger.error("Could not create a dataset of shape {}", Arrays.toString(shape), t);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>                        throw new IllegalArgumentException(t);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>                }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>                for (int i = 0; iter.hasNext() &amp;&amp; i &lt; nsize; i++) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>                        ndata[i] = data[iter.index];<a name="line.618"></a>
+<span class="sourceLineNo">619</span>                }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>                odata = data = ndata;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>                size = nsize;<a name="line.622"></a>
+<span class="sourceLineNo">623</span>                shape = newShape;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>                stride = null;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>                offset = 0;<a name="line.625"></a>
+<span class="sourceLineNo">626</span>                base = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>        @Override<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        public StringDatasetBase sort(Integer axis) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>                setDirty();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>                if (axis == null) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>                        if (stride == null) {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>                                Arrays.sort(data);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>                        } else {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>                                StringDatasetBase ads = clone().sort(null);<a name="line.636"></a>
+<span class="sourceLineNo">637</span>                                setSlicedView(getView(false), ads);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>                        }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>                } else {<a name="line.639"></a>
+<span class="sourceLineNo">640</span>                        axis = checkAxis(axis);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>                        <a name="line.641"></a>
+<span class="sourceLineNo">642</span>                        StringDatasetBase ads = new StringDatasetBase(shape[axis]);<a name="line.642"></a>
+<span class="sourceLineNo">643</span>                        PositionIterator pi = getPositionIterator(axis);<a name="line.643"></a>
+<span class="sourceLineNo">644</span>                        int[] pos = pi.getPos();<a name="line.644"></a>
+<span class="sourceLineNo">645</span>                        boolean[] hit = pi.getOmit();<a name="line.645"></a>
+<span class="sourceLineNo">646</span>                        while (pi.hasNext()) {<a name="line.646"></a>
+<span class="sourceLineNo">647</span>                                copyItemsFromAxes(pos, hit, ads);<a name="line.647"></a>
+<span class="sourceLineNo">648</span>                                Arrays.sort(ads.data);<a name="line.648"></a>
+<span class="sourceLineNo">649</span>                                setItemsOnAxes(pos, hit, ads.data);<a name="line.649"></a>
+<span class="sourceLineNo">650</span>                        }<a name="line.650"></a>
+<span class="sourceLineNo">651</span>                }<a name="line.651"></a>
+<span class="sourceLineNo">652</span>                return this;<a name="line.652"></a>
+<span class="sourceLineNo">653</span>                // throw new UnsupportedOperationException("Cannot sort dataset"); // BOOLEAN_USE<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>        public StringDatasetBase getUniqueItems() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>                Set&lt;String&gt; set = new TreeSet&lt;String&gt;(); // CLASS_TYPE<a name="line.658"></a>
+<span class="sourceLineNo">659</span>                IndexIterator it = getIterator();<a name="line.659"></a>
+<span class="sourceLineNo">660</span>                while (it.hasNext()) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>                        set.add(data[it.index]);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>                }<a name="line.662"></a>
+<span class="sourceLineNo">663</span><a name="line.663"></a>
+<span class="sourceLineNo">664</span>                StringDataset u = new StringDataset(set.size()); // CLASS_TYPE<a name="line.664"></a>
+<span class="sourceLineNo">665</span>                int i = 0;<a name="line.665"></a>
+<span class="sourceLineNo">666</span>                String[] udata = u.getData(); // PRIM_TYPE<a name="line.666"></a>
+<span class="sourceLineNo">667</span>                for (String v : set) { // CLASS_TYPE<a name="line.667"></a>
+<span class="sourceLineNo">668</span>                        udata[i++] = v;<a name="line.668"></a>
+<span class="sourceLineNo">669</span>                }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>                return u;<a name="line.670"></a>
+<span class="sourceLineNo">671</span>        }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>        @Override<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        public StringDatasetBase getSlice(final SliceIterator siter) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>                StringDatasetBase result = new StringDatasetBase(siter.getShape());<a name="line.675"></a>
+<span class="sourceLineNo">676</span>                String[] rdata = result.data; // PRIM_TYPE<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>                for (int i = 0; siter.hasNext(); i++)<a name="line.678"></a>
+<span class="sourceLineNo">679</span>                        rdata[i] = data[siter.index];<a name="line.679"></a>
+<span class="sourceLineNo">680</span><a name="line.680"></a>
+<span class="sourceLineNo">681</span>                result.setName(name + BLOCK_OPEN + Slice.createString(siter.shape, siter.start, siter.stop, siter.step) + BLOCK_CLOSE);<a name="line.681"></a>
+<span class="sourceLineNo">682</span>                return result;<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        }<a name="line.683"></a>
+<span class="sourceLineNo">684</span><a name="line.684"></a>
+<span class="sourceLineNo">685</span>        @Override<a name="line.685"></a>
+<span class="sourceLineNo">686</span>        public void fillDataset(Dataset result, IndexIterator iter) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>                IndexIterator riter = result.getIterator();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>                result.setDirty();<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>                String[] rdata = ((StringDatasetBase) result).data; // PRIM_TYPE<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>                while (riter.hasNext() &amp;&amp; iter.hasNext()) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>                        rdata[riter.index] = data[iter.index];<a name="line.693"></a>
+<span class="sourceLineNo">694</span>                }<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        }<a name="line.695"></a>
+<span class="sourceLineNo">696</span><a name="line.696"></a>
+<span class="sourceLineNo">697</span>        @Override<a name="line.697"></a>
+<span class="sourceLineNo">698</span>        public StringDatasetBase setByBoolean(final Object obj, Dataset selection) {<a name="line.698"></a>
+<span class="sourceLineNo">699</span>                setDirty();<a name="line.699"></a>
+<span class="sourceLineNo">700</span>                if (obj instanceof Dataset) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>                        final Dataset ds = (Dataset) obj;<a name="line.701"></a>
+<span class="sourceLineNo">702</span>                        final int length = ((Number) selection.sum()).intValue();<a name="line.702"></a>
+<span class="sourceLineNo">703</span>                        if (length != ds.getSize()) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>                                throw new IllegalArgumentException(<a name="line.704"></a>
+<span class="sourceLineNo">705</span>                                                "Number of true items in selection does not match number of items in dataset");<a name="line.705"></a>
+<span class="sourceLineNo">706</span>                        }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.708"></a>
+<span class="sourceLineNo">709</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>                        while (biter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.711"></a>
+<span class="sourceLineNo">712</span>                                data[biter.index] = ds.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.712"></a>
+<span class="sourceLineNo">713</span>                        }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>                } else {<a name="line.714"></a>
+<span class="sourceLineNo">715</span>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.715"></a>
+<span class="sourceLineNo">716</span>                        final BooleanIterator biter = getBooleanIterator(selection);<a name="line.716"></a>
+<span class="sourceLineNo">717</span><a name="line.717"></a>
+<span class="sourceLineNo">718</span>                        while (biter.hasNext()) {<a name="line.718"></a>
+<span class="sourceLineNo">719</span>                                data[biter.index] = dv;<a name="line.719"></a>
+<span class="sourceLineNo">720</span>                        }<a name="line.720"></a>
+<span class="sourceLineNo">721</span>                }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>                return this;<a name="line.722"></a>
+<span class="sourceLineNo">723</span>        }<a name="line.723"></a>
+<span class="sourceLineNo">724</span><a name="line.724"></a>
+<span class="sourceLineNo">725</span>        @Override<a name="line.725"></a>
+<span class="sourceLineNo">726</span>        public StringDatasetBase setBy1DIndex(final Object obj, final Dataset index) {<a name="line.726"></a>
+<span class="sourceLineNo">727</span>                setDirty();<a name="line.727"></a>
+<span class="sourceLineNo">728</span>                if (obj instanceof Dataset) {<a name="line.728"></a>
+<span class="sourceLineNo">729</span>                        final Dataset ds = (Dataset) obj;<a name="line.729"></a>
+<span class="sourceLineNo">730</span>                        if (index.getSize() != ds.getSize()) {<a name="line.730"></a>
+<span class="sourceLineNo">731</span>                                throw new IllegalArgumentException(<a name="line.731"></a>
+<span class="sourceLineNo">732</span>                                                "Number of items in index dataset does not match number of items in dataset");<a name="line.732"></a>
+<span class="sourceLineNo">733</span>                        }<a name="line.733"></a>
+<span class="sourceLineNo">734</span><a name="line.734"></a>
+<span class="sourceLineNo">735</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.735"></a>
+<span class="sourceLineNo">736</span>                        final IntegerIterator iter = new IntegerIterator(index, size);<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.738"></a>
+<span class="sourceLineNo">739</span>                                data[iter.index] = ds.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.739"></a>
+<span class="sourceLineNo">740</span>                        }<a name="line.740"></a>
+<span class="sourceLineNo">741</span>                } else {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.742"></a>
+<span class="sourceLineNo">743</span>                        IntegerIterator iter = new IntegerIterator(index, size);<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>                        while (iter.hasNext()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>                                data[iter.index] = dv;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>                        }<a name="line.747"></a>
+<span class="sourceLineNo">748</span>                }<a name="line.748"></a>
+<span class="sourceLineNo">749</span>                return this;<a name="line.749"></a>
+<span class="sourceLineNo">750</span>        }<a name="line.750"></a>
+<span class="sourceLineNo">751</span><a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public StringDatasetBase setByIndexes(final Object obj, final Object... indexes) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>                setDirty();<a name="line.754"></a>
+<span class="sourceLineNo">755</span>                final IntegersIterator iter = new IntegersIterator(shape, indexes);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>                final int[] pos = iter.getPos();<a name="line.756"></a>
+<span class="sourceLineNo">757</span><a name="line.757"></a>
+<span class="sourceLineNo">758</span>                if (obj instanceof Dataset) {<a name="line.758"></a>
+<span class="sourceLineNo">759</span>                        final Dataset ds = (Dataset) obj;<a name="line.759"></a>
+<span class="sourceLineNo">760</span>                        if (ShapeUtils.calcSize(iter.getShape()) != ds.getSize()) {<a name="line.760"></a>
+<span class="sourceLineNo">761</span>                                throw new IllegalArgumentException(<a name="line.761"></a>
+<span class="sourceLineNo">762</span>                                                "Number of items in index datasets does not match number of items in dataset");<a name="line.762"></a>
+<span class="sourceLineNo">763</span>                        }<a name="line.763"></a>
+<span class="sourceLineNo">764</span><a name="line.764"></a>
+<span class="sourceLineNo">765</span>                        final IndexIterator oiter = ds.getIterator();<a name="line.765"></a>
+<span class="sourceLineNo">766</span><a name="line.766"></a>
+<span class="sourceLineNo">767</span>                        while (iter.hasNext() &amp;&amp; oiter.hasNext()) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>                                setItem(ds.getStringAbs(oiter.index), pos); // GET_ELEMENT_WITH_CAST<a name="line.768"></a>
+<span class="sourceLineNo">769</span>                        }<a name="line.769"></a>
+<span class="sourceLineNo">770</span>                } else {<a name="line.770"></a>
+<span class="sourceLineNo">771</span>                        final String dv = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>                        while (iter.hasNext()) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>                                setItem(dv, pos);<a name="line.774"></a>
+<span class="sourceLineNo">775</span>                        }<a name="line.775"></a>
+<span class="sourceLineNo">776</span>                }<a name="line.776"></a>
+<span class="sourceLineNo">777</span>                return this;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span><a name="line.779"></a>
+<span class="sourceLineNo">780</span>        @Override<a name="line.780"></a>
+<span class="sourceLineNo">781</span>        StringDatasetBase setSlicedView(Dataset view, Dataset d) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>                setDirty();<a name="line.782"></a>
+<span class="sourceLineNo">783</span>                final BroadcastSelfIterator it = BroadcastSelfIterator.createIterator(view, d);<a name="line.783"></a>
+<span class="sourceLineNo">784</span><a name="line.784"></a>
+<span class="sourceLineNo">785</span>                while (it.hasNext()) {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>                        data[it.aIndex] = d.getStringAbs(it.bIndex);<a name="line.786"></a>
+<span class="sourceLineNo">787</span>                }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>                return this;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>        }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>        @Override<a name="line.791"></a>
+<span class="sourceLineNo">792</span>        public StringDatasetBase setSlice(final Object obj, final IndexIterator siter) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>                setDirty();<a name="line.793"></a>
+<span class="sourceLineNo">794</span><a name="line.794"></a>
+<span class="sourceLineNo">795</span>                if (obj instanceof IDataset) {<a name="line.795"></a>
+<span class="sourceLineNo">796</span>                        final IDataset ds = (IDataset) obj;<a name="line.796"></a>
+<span class="sourceLineNo">797</span>                        final int[] oshape = ds.getShape();<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>                        if (!ShapeUtils.areShapesCompatible(siter.getShape(), oshape)) {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                                throw new IllegalArgumentException(String.format(<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                                                "Input dataset is not compatible with slice: %s cf %s", Arrays.toString(oshape),<a name="line.801"></a>
+<span class="sourceLineNo">802</span>                                                Arrays.toString(siter.getShape())));<a name="line.802"></a>
+<span class="sourceLineNo">803</span>                        }<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span>                        if (ds instanceof Dataset) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>                                final Dataset ads = (Dataset) ds;<a name="line.806"></a>
+<span class="sourceLineNo">807</span>                                final IndexIterator oiter = ads.getIterator();<a name="line.807"></a>
+<span class="sourceLineNo">808</span><a name="line.808"></a>
+<span class="sourceLineNo">809</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                                        data[siter.index] = ads.getStringAbs(oiter.index); // GET_ELEMENT_WITH_CAST<a name="line.810"></a>
+<span class="sourceLineNo">811</span>                        } else {<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                                final IndexIterator oiter = new PositionIterator(oshape);<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                                final int[] pos = oiter.getPos();<a name="line.813"></a>
+<span class="sourceLineNo">814</span><a name="line.814"></a>
+<span class="sourceLineNo">815</span>                                while (siter.hasNext() &amp;&amp; oiter.hasNext())<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                                        data[siter.index] = ds.getString(pos); // PRIM_TYPE<a name="line.816"></a>
+<span class="sourceLineNo">817</span>                        }<a name="line.817"></a>
+<span class="sourceLineNo">818</span>                } else {<a name="line.818"></a>
+<span class="sourceLineNo">819</span>                        try {<a name="line.819"></a>
+<span class="sourceLineNo">820</span>                                String v = obj.toString(); // PRIM_TYPE // FROM_OBJECT<a name="line.820"></a>
+<span class="sourceLineNo">821</span><a name="line.821"></a>
+<span class="sourceLineNo">822</span>                                while (siter.hasNext())<a name="line.822"></a>
+<span class="sourceLineNo">823</span>                                        data[siter.index] = v;<a name="line.823"></a>
+<span class="sourceLineNo">824</span>                        } catch (IllegalArgumentException e) {<a name="line.824"></a>
+<span class="sourceLineNo">825</span>                                throw new IllegalArgumentException("Object for setting slice is not a dataset or number");<a name="line.825"></a>
+<span class="sourceLineNo">826</span>                        }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>                }<a name="line.827"></a>
+<span class="sourceLineNo">828</span>                return this;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>        @Override<a name="line.831"></a>
+<span class="sourceLineNo">832</span>        public void copyItemsFromAxes(final int[] pos, final boolean[] axes, final Dataset dest) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>                String[] ddata = (String[]) dest.getBuffer(); // PRIM_TYPE<a name="line.833"></a>
+<span class="sourceLineNo">834</span><a name="line.834"></a>
+<span class="sourceLineNo">835</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.835"></a>
+<span class="sourceLineNo">836</span>                int[] sshape = ShapeUtils.squeezeShape(siter.getShape(), false);<a name="line.836"></a>
+<span class="sourceLineNo">837</span><a name="line.837"></a>
+<span class="sourceLineNo">838</span>                IndexIterator diter = dest.getSliceIterator(null, sshape, null);<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>                if (ddata.length &lt; ShapeUtils.calcSize(sshape)) {<a name="line.840"></a>
+<span class="sourceLineNo">841</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.841"></a>
+<span class="sourceLineNo">842</span>                }<a name="line.842"></a>
+<span class="sourceLineNo">843</span><a name="line.843"></a>
+<span class="sourceLineNo">844</span>                dest.setDirty();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>                while (siter.hasNext() &amp;&amp; diter.hasNext()) {<a name="line.845"></a>
+<span class="sourceLineNo">846</span>                        ddata[diter.index] = data[siter.index];<a name="line.846"></a>
+<span class="sourceLineNo">847</span>                }<a name="line.847"></a>
+<span class="sourceLineNo">848</span>        }<a name="line.848"></a>
+<span class="sourceLineNo">849</span><a name="line.849"></a>
+<span class="sourceLineNo">850</span>        @Override<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        public void setItemsOnAxes(final int[] pos, final boolean[] axes, final Object src) {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>                setDirty();<a name="line.852"></a>
+<span class="sourceLineNo">853</span>                String[] sdata = (String[]) src; // PRIM_TYPE<a name="line.853"></a>
+<span class="sourceLineNo">854</span><a name="line.854"></a>
+<span class="sourceLineNo">855</span>                SliceIterator siter = getSliceIteratorFromAxes(pos, axes);<a name="line.855"></a>
+<span class="sourceLineNo">856</span><a name="line.856"></a>
+<span class="sourceLineNo">857</span>                if (sdata.length &lt; ShapeUtils.calcSize(siter.getShape())) {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>                        throw new IllegalArgumentException("destination array is not large enough");<a name="line.858"></a>
+<span class="sourceLineNo">859</span>                }<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>                for (int i = 0; siter.hasNext(); i++) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>                        data[siter.index] = sdata[i];<a name="line.862"></a>
+<span class="sourceLineNo">863</span>                }<a name="line.863"></a>
+<span class="sourceLineNo">864</span>        }<a name="line.864"></a>
+<span class="sourceLineNo">865</span><a name="line.865"></a>
+<span class="sourceLineNo">866</span>        private List&lt;int[]&gt; findPositions(final String value) { // PRIM_TYPE<a name="line.866"></a>
+<span class="sourceLineNo">867</span>                IndexIterator iter = getIterator(true);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>                List&lt;int[]&gt; posns = new ArrayList&lt;int[]&gt;();<a name="line.868"></a>
+<span class="sourceLineNo">869</span>                int[] pos = iter.getPos();<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>                {<a name="line.871"></a>
+<span class="sourceLineNo">872</span>                        while (iter.hasNext()) {<a name="line.872"></a>
+<span class="sourceLineNo">873</span>                                if (data[iter.index] == value) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>                                        posns.add(pos.clone());<a name="line.874"></a>
+<span class="sourceLineNo">875</span>                                }<a name="line.875"></a>
+<span class="sourceLineNo">876</span>                        }<a name="line.876"></a>
+<span class="sourceLineNo">877</span>                }<a name="line.877"></a>
+<span class="sourceLineNo">878</span>                return posns;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        }<a name="line.879"></a>
+<span class="sourceLineNo">880</span><a name="line.880"></a>
+<span class="sourceLineNo">881</span>        @Override<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        public int[] maxPos(boolean... ignoreInvalids) {<a name="line.882"></a>
+<span class="sourceLineNo">883</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.883"></a>
+<span class="sourceLineNo">884</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.884"></a>
+<span class="sourceLineNo">885</span>                List&lt;int[]&gt; max = md.getMaximumPositions(ignoreInvalids);<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>                if (max == null) {<a name="line.887"></a>
+<span class="sourceLineNo">888</span>                        // max = findPositions(md.getMaximum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.888"></a>
+<span class="sourceLineNo">889</span>                        max = findPositions(md.getMaximum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.889"></a>
+<span class="sourceLineNo">890</span><a name="line.890"></a>
+<span class="sourceLineNo">891</span>                        md.setMaximumPositions(max);<a name="line.891"></a>
+<span class="sourceLineNo">892</span>                }<a name="line.892"></a>
+<span class="sourceLineNo">893</span><a name="line.893"></a>
+<span class="sourceLineNo">894</span>                return max.get(0); // first maximum<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        }<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>        @Override<a name="line.897"></a>
+<span class="sourceLineNo">898</span>        public int[] minPos(boolean... ignoreInvalids) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>                // StatisticsMetadata&lt;Number&gt; md = getStats(); // BOOLEAN_USE<a name="line.899"></a>
+<span class="sourceLineNo">900</span>                StatisticsMetadata&lt;String&gt; md = getStringStats(); // OBJECT_USE<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                List&lt;int[]&gt; min = md.getMinimumPositions(ignoreInvalids);<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>                if (min == null) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>                        // min = findPositions(md.getMinimum(ignoreInvalids).intValue() != 0); // BOOLEAN_USE<a name="line.904"></a>
+<span class="sourceLineNo">905</span>                        min = findPositions(md.getMinimum(ignoreInvalids).toString()); // OBJECT_USE<a name="line.905"></a>
+<span class="sourceLineNo">906</span><a name="line.906"></a>
+<span class="sourceLineNo">907</span>                        md.setMinimumPositions(min);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>                }<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>                return min.get(0); // first minimum<a name="line.910"></a>
+<span class="sourceLineNo">911</span>        }<a name="line.911"></a>
+<span class="sourceLineNo">912</span><a name="line.912"></a>
+<span class="sourceLineNo">913</span>        @Override<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        public boolean containsNans() {<a name="line.914"></a>
+<span class="sourceLineNo">915</span>                return false;<a name="line.915"></a>
+<span class="sourceLineNo">916</span>        }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>        @Override<a name="line.918"></a>
+<span class="sourceLineNo">919</span>        public boolean containsInfs() {<a name="line.919"></a>
+<span class="sourceLineNo">920</span>                return false;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>        }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>        @Override<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        public boolean containsInvalidNumbers() {<a name="line.924"></a>
+<span class="sourceLineNo">925</span>                return false;<a name="line.925"></a>
+<span class="sourceLineNo">926</span>        }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>        @Override<a name="line.928"></a>
+<span class="sourceLineNo">929</span>        public StringDatasetBase iadd(final Object b) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>                return this;<a name="line.930"></a>
+<span class="sourceLineNo">931</span>        }<a name="line.931"></a>
+<span class="sourceLineNo">932</span><a name="line.932"></a>
+<span class="sourceLineNo">933</span>        @Override<a name="line.933"></a>
+<span class="sourceLineNo">934</span>        public StringDatasetBase isubtract(final Object b) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>                return this;<a name="line.935"></a>
+<span class="sourceLineNo">936</span>        }<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>        @Override<a name="line.938"></a>
+<span class="sourceLineNo">939</span>        public StringDatasetBase imultiply(final Object b) {<a name="line.939"></a>
+<span class="sourceLineNo">940</span>                return this;<a name="line.940"></a>
+<span class="sourceLineNo">941</span>        }<a name="line.941"></a>
+<span class="sourceLineNo">942</span><a name="line.942"></a>
+<span class="sourceLineNo">943</span>        @Override<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        public StringDatasetBase idivide(final Object b) {<a name="line.944"></a>
+<span class="sourceLineNo">945</span>                return this;<a name="line.945"></a>
+<span class="sourceLineNo">946</span>        }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>        @Override<a name="line.948"></a>
+<span class="sourceLineNo">949</span>        public StringDatasetBase ifloor() {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>                return this;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span><a name="line.952"></a>
+<span class="sourceLineNo">953</span>        @Override<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        public StringDatasetBase iremainder(final Object b) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>                return this;<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        }<a name="line.956"></a>
+<span class="sourceLineNo">957</span><a name="line.957"></a>
+<span class="sourceLineNo">958</span>        @Override<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        public StringDatasetBase ipower(final Object b) {<a name="line.959"></a>
+<span class="sourceLineNo">960</span>                return this;<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        }<a name="line.961"></a>
+<span class="sourceLineNo">962</span><a name="line.962"></a>
+<span class="sourceLineNo">963</span>        @Override<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        public double residual(final Object b, final Dataset w, boolean ignoreNaNs) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>                double sum = 0;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>                return sum;<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        }<a name="line.967"></a>
+<span class="sourceLineNo">968</span>}<a name="line.968"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html
new file mode 100644
index 0000000..f477f16
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/UnaryOperation.Stub.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a unary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface UnaryOperation extends IOperation {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param a<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return op(a)<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @return op(a)<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        long longOperate(long a);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param a<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return op(a)a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        double doubleOperate(double a);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param out holds op(ra, ia)<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param ra<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param ia<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        void complexOperate(double[] out, double ra, double ia);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param a<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return string to represent output<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        String toString(String a);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Stub class where only two methods need to be overridden:<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         *  {@link #complexOperate(double[], double, double)},<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *  {@link #toString(String)}<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public static class Stub implements UnaryOperation {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                double[] z = new double[2];<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                @Override<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                public double doubleOperate(double a) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        complexOperate(z, a, 0);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        return z[0];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public boolean booleanOperate(long a) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        return doubleOperate(a) != 0;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                public long longOperate(long a) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        return DTypeUtils.toLong(doubleOperate(a));<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>                /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                 * Override this<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                 */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 * Override this<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                 */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                @Override<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                public String toString(String a) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        return null;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/dataset/UnaryOperation.html b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/UnaryOperation.html
new file mode 100644
index 0000000..f477f16
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/dataset/UnaryOperation.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.dataset;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Interface to represent a unary operation for implementations over different output domains<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * @since 2.0<a name="line.17"></a>
+<span class="sourceLineNo">018</span> */<a name="line.18"></a>
+<span class="sourceLineNo">019</span>public interface UnaryOperation extends IOperation {<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>        /**<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         * @param a<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * @return op(a)<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        boolean booleanOperate(long a);<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param a<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @return op(a)<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        long longOperate(long a);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @param a<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return op(a)a<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        double doubleOperate(double a);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @param out holds op(ra, ia)<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @param ra<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @param ia<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        void complexOperate(double[] out, double ra, double ia);<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param a<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @return string to represent output<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        String toString(String a);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Stub class where only two methods need to be overridden:<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         *  {@link #complexOperate(double[], double, double)},<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *  {@link #toString(String)}<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public static class Stub implements UnaryOperation {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                double[] z = new double[2];<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>                @Override<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                public double doubleOperate(double a) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        complexOperate(z, a, 0);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        return z[0];<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>                @Override<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                public boolean booleanOperate(long a) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        return doubleOperate(a) != 0;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                public long longOperate(long a) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                        return DTypeUtils.toLong(doubleOperate(a));<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>                /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                 * Override this<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                 */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                public void complexOperate(double[] out, double ra, double ia) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>                /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>                 * Override this<a name="line.84"></a>
+<span class="sourceLineNo">085</span>                 */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                @Override<a name="line.86"></a>
+<span class="sourceLineNo">087</span>                public String toString(String a) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>                        return null;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/io/IDataAnalysisObject.html b/apidocs/2.1.1/src-html/org/eclipse/january/io/IDataAnalysisObject.html
new file mode 100644
index 0000000..0e2801c
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/io/IDataAnalysisObject.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.io;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>/**<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * Used to mark data in the LoaderFactory so that the incorrect values are not stored in the cache.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>public interface IDataAnalysisObject extends Cloneable {<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>        public Object clone();<a name="line.20"></a>
+<span class="sourceLineNo">021</span>}<a name="line.21"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyAsyncSaver.html b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyAsyncSaver.html
new file mode 100644
index 0000000..53e46fe
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyAsyncSaver.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>package org.eclipse.january.io;<a name="line.1"></a>
+<span class="sourceLineNo">002</span><a name="line.2"></a>
+<span class="sourceLineNo">003</span>import java.io.IOException;<a name="line.3"></a>
+<span class="sourceLineNo">004</span><a name="line.4"></a>
+<span class="sourceLineNo">005</span>import org.eclipse.january.IMonitor;<a name="line.5"></a>
+<span class="sourceLineNo">006</span>import org.eclipse.january.dataset.IDataset;<a name="line.6"></a>
+<span class="sourceLineNo">007</span>import org.eclipse.january.dataset.SliceND;<a name="line.7"></a>
+<span class="sourceLineNo">008</span><a name="line.8"></a>
+<span class="sourceLineNo">009</span>/**<a name="line.9"></a>
+<span class="sourceLineNo">010</span> * Used by lazy writeable datasets to write slices to a file in an asynchronous manner<a name="line.10"></a>
+<span class="sourceLineNo">011</span> */<a name="line.11"></a>
+<span class="sourceLineNo">012</span>public interface ILazyAsyncSaver extends ILazySaver {<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>        /**<a name="line.14"></a>
+<span class="sourceLineNo">015</span>         * Non-blocking version of {@link #setSlice(IMonitor, IDataset, SliceND)}<a name="line.15"></a>
+<span class="sourceLineNo">016</span>         * @param mon<a name="line.16"></a>
+<span class="sourceLineNo">017</span>         * @param data<a name="line.17"></a>
+<span class="sourceLineNo">018</span>         * @param slice<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * @throws IOException<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>        public void setSliceAsync(IMonitor mon, IDataset data, SliceND slice) throws IOException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>}<a name="line.22"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyDynamicLoader.html b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyDynamicLoader.html
new file mode 100644
index 0000000..950c6c2
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyDynamicLoader.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.io;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>public interface ILazyDynamicLoader {<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>        public int[] refreshShape();<a name="line.14"></a>
+<span class="sourceLineNo">015</span>        <a name="line.15"></a>
+<span class="sourceLineNo">016</span>}<a name="line.16"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyLoader.html b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyLoader.html
new file mode 100644
index 0000000..c8e137b
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazyLoader.html
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.io;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.IOException;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.io.Serializable;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.IMonitor;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.dataset.IDataset;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.dataset.SliceND;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Used by lazy datasets to read slices from a file<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public interface ILazyLoader extends Serializable {<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public static final long serialVersionUID = -611684979804645511L;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        /**<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * <a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return true if file is readable<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public boolean isFileReadable();<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>        /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @param mon<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * @param slice<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a slice of a dataset<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @throws IOException<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public IDataset getDataset(IMonitor mon, SliceND slice) throws IOException;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>}<a name="line.41"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazySaver.html b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazySaver.html
new file mode 100644
index 0000000..61a2895
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/io/ILazySaver.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.io;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.io.IOException;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import org.eclipse.january.IMonitor;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.dataset.IDataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.eclipse.january.dataset.SliceND;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Used by lazy writeable datasets to write slices to a file<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public interface ILazySaver extends ILazyLoader {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>        public static final long serialVersionUID = 1366057382940519510L;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * Initialize dataset in file<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @throws IOException<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public void initialize() throws IOException;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * <a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @return true if file is writeable<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public boolean isFileWriteable();<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @param mon<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param data<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param slice<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @throws IOException<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public void setSlice(IMonitor mon, IDataset data, SliceND slice) throws IOException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>}<a name="line.43"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/io/IMetaLoader.html b/apidocs/2.1.1/src-html/org/eclipse/january/io/IMetaLoader.html
new file mode 100644
index 0000000..607734e
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/io/IMetaLoader.html
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.io;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.IOException;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.IMonitor;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.metadata.IMetadata;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Interface used to mark a loader as being available to load and return<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * metadata without loading the entire file into memory.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public interface IMetaLoader {<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * Loads the meta data from the file but not all the data.<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * This can be read in more cheaply than the entire data.<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @param mon<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public void loadMetadata(IMonitor mon) throws IOException ;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        <a name="line.33"></a>
+<span class="sourceLineNo">034</span>    /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>     * Returns an object containing some data about the data file<a name="line.35"></a>
+<span class="sourceLineNo">036</span>     * to be read in. <a name="line.36"></a>
+<span class="sourceLineNo">037</span>      * @return IMetadata<a name="line.37"></a>
+<span class="sourceLineNo">038</span>     */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public IMetadata getMetadata();<a name="line.39"></a>
+<span class="sourceLineNo">040</span>}<a name="line.40"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/ARPESMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/ARPESMetadata.html
new file mode 100644
index 0000000..4eb9313
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/ARPESMetadata.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.dataset.ILazyDataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes ARPES-related information<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public interface ARPESMetadata extends MetadataType {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Initialize<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>        public void initialize();<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        // Constants for the scan<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public double getPhotonEnergy();<a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public double getWorkFunction();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public double getPassEnergy();<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public double getTemperature();<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        <a name="line.32"></a>
+<span class="sourceLineNo">033</span>        // Axis associated with detector images<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public ILazyDataset getKineticEnergies();<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public ILazyDataset getAnalyserAngles();<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        // Axis associated with the scan direction of the data<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        public ILazyDataset getPolarAngles();<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public ILazyDataset getTiltAngles();<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public ILazyDataset getAzimuthalAngles();<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        // Calibration information<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        public double getEnergyAxisGlobalOffset();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public double getAngleAxisGlobalOffset();<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        public ILazyDataset getEnergyAxisOffset();<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        <a name="line.46"></a>
+<span class="sourceLineNo">047</span>        <a name="line.47"></a>
+<span class="sourceLineNo">048</span>        // calculated axis associated with frames<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public ILazyDataset getBindingEnergies();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public ILazyDataset getPhotoelectronMomentum();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        <a name="line.51"></a>
+<span class="sourceLineNo">052</span>        <a name="line.52"></a>
+<span class="sourceLineNo">053</span>        // Methods to correct data<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        <a name="line.54"></a>
+<span class="sourceLineNo">055</span>}<a name="line.55"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/AxesMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/AxesMetadata.html
new file mode 100644
index 0000000..a9db9fe
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/AxesMetadata.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.dataset.ILazyDataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes any axis information associated with a dataset.<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Dimension numbers are zero-based, i.e. the first dimension is numbered<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * zero.<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public interface AxesMetadata extends MetadataType {<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * <a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param rank<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        void initialize(int rank);<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Get axis datasets<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @return all axis datasets, any nulls represent default integer indexes, <a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * each axis is the main specified axis. i.e the result of getAxis(n)[0]<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public ILazyDataset[] getAxes();<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * Get all axis datasets for the given dimension<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         * @param axisDim dimension (n.b. this is zero-based)<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * @return axis datasets, null represent default integer indexes, the order is in inverse importance.<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        public ILazyDataset[] getAxis(int axisDim);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>        /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         * Set axis datasets for given dimension. These datasets must be one dimensional or match rank<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * with the associating dataset<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @param axisDim<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param axisData<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        public void setAxis(int axisDim, ILazyDataset... axisData);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        <a name="line.51"></a>
+<span class="sourceLineNo">052</span>        /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * Add axis data to given dimension. This dataset must be one dimensional or match rank<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * with the associating dataset<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * @param axisDim dimension (n.b. this is zero-based)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @param axisData dataset for axis<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        public void addAxis(int i, ILazyDataset lazyDataset);<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * <a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param primaryAxisDim primary dimension (n.b. this is zero-based)<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param iLazyDataset<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param dimMapping indicates where each axis dimension maps to in the dataset dimensions  <a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        public void addAxis(int primaryAxisDim, ILazyDataset iLazyDataset, int... dimMapping);<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>        /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * Refresh with given shape<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param shape<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @return new shape<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        int[] refresh(int[] shape);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>}<a name="line.74"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DimensionMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DimensionMetadata.html
new file mode 100644
index 0000000..eab90e7
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DimensionMetadata.html
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>public interface DimensionMetadata extends MetadataType {<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>        /**<a name="line.17"></a>
+<span class="sourceLineNo">018</span>         * Initialize dimension metadata<a name="line.18"></a>
+<span class="sourceLineNo">019</span>         * @param shape<a name="line.19"></a>
+<span class="sourceLineNo">020</span>         * @param maxShape<a name="line.20"></a>
+<span class="sourceLineNo">021</span>         * @param chunkShape<a name="line.21"></a>
+<span class="sourceLineNo">022</span>         */<a name="line.22"></a>
+<span class="sourceLineNo">023</span>        public void initialize(int[] shape, int[] maxShape, int[] chunkShape);<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>        public int[] getDataDimensions();<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public int[] getDataMaxDimensions();<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>        public int[] getDataChunkDimensions();<a name="line.29"></a>
+<span class="sourceLineNo">030</span>}<a name="line.30"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Dirtiable.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Dirtiable.html
new file mode 100644
index 0000000..c6a9779
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Dirtiable.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2017 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.lang.annotation.ElementType;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.annotation.Retention;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.annotation.RetentionPolicy;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.annotation.Target;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This is an annotation for any metadata field that should be set to a dirty state.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * @since 2.0<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.24"></a>
+<span class="sourceLineNo">025</span>@Target(value = ElementType.FIELD)<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public @interface Dirtiable {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>}<a name="line.27"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html
new file mode 100644
index 0000000..e8e4305
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DynamicConnectionInfo.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*******************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright (c) 2016 Diamond Light Source Ltd. and others.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * All rights reserved. This program and the accompanying materials<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * which accompanies this distribution, and is available at<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.6"></a>
+<span class="sourceLineNo">007</span> *<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * Contributors:<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *     Diamond Light Source Ltd - initial API and implementation<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *******************************************************************************/<a name="line.10"></a>
+<span class="sourceLineNo">011</span>package org.eclipse.january.metadata;<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>/**<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * This metadata is set by a remote dataset.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * <a name="line.15"></a>
+<span class="sourceLineNo">016</span> * It provides information about dropped data and<a name="line.16"></a>
+<span class="sourceLineNo">017</span> * received data while the dataset is connected.<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * <a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Not all remote datasets are forced to provide this information.<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * <a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This class is set in bundle org.eclipse.dawnsci.remotedataset.client <a name="line.21"></a>
+<span class="sourceLineNo">022</span> * as metadata on RemoteDatasets returned from the Data Server<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * <a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class DynamicConnectionInfo implements MetadataType {<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * <a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private static final long serialVersionUID = -3982740822246879131L;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        <a name="line.31"></a>
+<span class="sourceLineNo">032</span>        private long receivedCount;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>        private long droppedCount;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private boolean connected;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        <a name="line.35"></a>
+<span class="sourceLineNo">036</span>        <a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public boolean isConnected() {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                return connected;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        public void setConnected(boolean connected) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                this.connected = connected;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>        @Override<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public int hashCode() {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>                final int prime = 31;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>                int result = 1;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>                result = prime * result + (connected ? 1231 : 1237);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                result = prime * result + (int) (droppedCount ^ (droppedCount &gt;&gt;&gt; 32));<a name="line.50"></a>
+<span class="sourceLineNo">051</span>                result = prime * result + (int) (receivedCount ^ (receivedCount &gt;&gt;&gt; 32));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>                return result;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        }<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        @Override<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        public boolean equals(Object obj) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>                if (this == obj)<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                        return true;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                if (obj == null)<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                        return false;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                if (getClass() != obj.getClass())<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                        return false;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                DynamicConnectionInfo other = (DynamicConnectionInfo) obj;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                if (connected != other.connected)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                        return false;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                if (droppedCount != other.droppedCount)<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                        return false;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                if (receivedCount != other.receivedCount)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                        return false;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>                return true;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>        public long getReceivedCount() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                return receivedCount;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>        public void setReceivedCount(int receivedCount) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                this.receivedCount = receivedCount;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>        public long getDroppedCount() {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>                return droppedCount;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        public void setDroppedCount(int droppedCount) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>                this.droppedCount = droppedCount;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>        /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>         * Make a deep copy of metadata<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @return clone<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         */<a name="line.92"></a>
+<span class="sourceLineNo">093</span>        @Override<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        public MetadataType clone() {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>                DynamicConnectionInfo info = new DynamicConnectionInfo();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>                info.receivedCount = this.receivedCount;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>                info.droppedCount  = this.droppedCount;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                return info;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>}<a name="line.101"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html
new file mode 100644
index 0000000..ecbed93
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/DynamicMetadataUtils.html
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright 2015, 2016 Diamond Light Source Ltd.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> *<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> */<a name="line.8"></a>
+<span class="sourceLineNo">009</span><a name="line.9"></a>
+<span class="sourceLineNo">010</span>package org.eclipse.january.metadata;<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>import java.util.List;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>public class DynamicMetadataUtils {<a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>        public static int[] refreshDynamicAxesMetadata(List&lt;AxesMetadata&gt; axm, int[] shape){<a name="line.16"></a>
+<span class="sourceLineNo">017</span>                <a name="line.17"></a>
+<span class="sourceLineNo">018</span>                int[] maxShape = shape.clone();<a name="line.18"></a>
+<span class="sourceLineNo">019</span>                if (axm == null) return maxShape;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>                <a name="line.20"></a>
+<span class="sourceLineNo">021</span>                for (AxesMetadata a : axm) {<a name="line.21"></a>
+<span class="sourceLineNo">022</span>                        AxesMetadata ai = a;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>                        int[] s = ai.refresh(shape);<a name="line.23"></a>
+<span class="sourceLineNo">024</span>                        for (int i = 0; i &lt; s.length; i++) {<a name="line.24"></a>
+<span class="sourceLineNo">025</span>                                if (maxShape[i] &gt; s[i]) maxShape[i] = s[i];<a name="line.25"></a>
+<span class="sourceLineNo">026</span>                        }<a name="line.26"></a>
+<span class="sourceLineNo">027</span>                }<a name="line.27"></a>
+<span class="sourceLineNo">028</span>                <a name="line.28"></a>
+<span class="sourceLineNo">029</span>                return maxShape;        <a name="line.29"></a>
+<span class="sourceLineNo">030</span>        }<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        <a name="line.31"></a>
+<span class="sourceLineNo">032</span>}<a name="line.32"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/ErrorMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/ErrorMetadata.html
new file mode 100644
index 0000000..06deddd
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/ErrorMetadata.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.dataset.ILazyDataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes any error associated with a dataset<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public interface ErrorMetadata extends MetadataType {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        public void initialize();<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>        /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * Get error dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @return error dataset<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public ILazyDataset getError();<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * Set the error<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @param error<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public void setError(ILazyDataset error);<a name="line.34"></a>
+<span class="sourceLineNo">035</span>}<a name="line.35"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/IExtendedMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/IExtendedMetadata.html
new file mode 100644
index 0000000..c5a80e7
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/IExtendedMetadata.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span><a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.io.File;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Date;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * This is an interface that has been designed to add information about a file in addition to<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * information which has been implemented in IMetadata.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * &lt;p&gt;<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * It is intended that implementations of this interface will be through an adapter<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public interface IExtendedMetadata extends IMetadata {<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * Initialize with a file<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param f file<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public void initialize(File f);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * This should be the timestamp of when the experiment or measurement took place which should<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * be recorded in the header of the file, if applicable<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         * <a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * @return a date object to represent when the data was created<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        public Date getCreation();<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>        /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         * @return a date object that indicated when the data was last modified<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        public Date getLastModified();<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        /**<a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @return a string representing the user who created the file<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public String getCreator();<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>        /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @return a string containing the filename<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        public String getFileName();<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>        /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @return the owner of the file<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public String getFileOwner();<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @return a long representing the size of the file in bytes<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        public long getFileSize();<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * @return the full path string of the file<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        public String getFullPath();<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>        /**<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @return The scan command as a string that was used to generate the data. This can be null as not always<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         *         applicable<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        public String getScanCommand();<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>}<a name="line.77"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/IMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/IMetadata.html
new file mode 100644
index 0000000..9526a86
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/IMetadata.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.util.Collection;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.util.Map;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.MetadataException;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.io.IDataAnalysisObject;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * This interface describes the minimal metadata information that should be <a name="line.23"></a>
+<span class="sourceLineNo">024</span> * associated with a Dataset or DataHolder. It is intended that<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * this interface will be implemented in an object that will then be <a name="line.25"></a>
+<span class="sourceLineNo">026</span> * associated with a DataHolder or dataset using setMetadata(IMetadata).<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * &lt;p&gt;<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * All returned collections and maps are &lt;b&gt;unmodifiable&lt;/b&gt;.<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public interface IMetadata extends IDataAnalysisObject, MetadataType, Serializable {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * Update this when there are any serious changes to API<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        static final long serialVersionUID = 8640458661665962384L;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * Initialize metadata<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @param metadata<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public void initialize(Map&lt;String, ? extends Serializable&gt; metadata);<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * <a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return the path to the original file, or null if there was not a file.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public String getFilePath();<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * Returns a collection of dataset names or null if not implemented<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * <a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @return collection<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        public Collection&lt;String&gt; getDataNames();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>        /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * Can be implemented to return sizes of datasets<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * (size can be null if it is not known)<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * @return map of sizes<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>        public Map&lt;String, Integer&gt; getDataSizes();<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>        /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * Can be implemented to return shapes of dataset<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * (shape can be null if it is not known)<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         * @return map of shapes<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public Map&lt;String, int[]&gt; getDataShapes();<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * Returns string value or null if not implemented<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * <a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param key<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @return value<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @throws MetadataException<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        public Serializable getMetaValue(String key) throws MetadataException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * Returns a collection of metadata names<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @return collection<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         * @throws MetadataException<a name="line.81"></a>
+<span class="sourceLineNo">082</span>         */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        public Collection&lt;String&gt; getMetaNames() throws MetadataException;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>        /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * May be implemented to provide custom metadata in the form of a collection of serializable objects<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         * <a name="line.87"></a>
+<span class="sourceLineNo">088</span>         * @return collection<a name="line.88"></a>
+<span class="sourceLineNo">089</span>         */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        public Collection&lt;Serializable&gt; getUserObjects();<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>        /**<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         * Copy of metadata<a name="line.93"></a>
+<span class="sourceLineNo">094</span>         * @return deep copy<a name="line.94"></a>
+<span class="sourceLineNo">095</span>         */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        @Override<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        public IMetadata clone();<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>        public void setFilePath(String filename);<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>        /**<a name="line.101"></a>
+<span class="sourceLineNo">102</span>         * Add name and shape of a dataset to metadata<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * <a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @param name<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         * @param shape (can be null or zero-length)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>         * <a name="line.106"></a>
+<span class="sourceLineNo">107</span>         * (NOTE method should be public, people can define loaders outside this<a name="line.107"></a>
+<span class="sourceLineNo">108</span>         * package like the DESY FIO loader for instance.)<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         */<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        public void addDataInfo(String n, int... shape);<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public void addNames(Collection&lt;String&gt; names);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * Set metadata map<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @param metadata<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        public void setMetadata(Map&lt;String, ? extends Serializable&gt; map);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>}<a name="line.119"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MaskMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MaskMetadata.html
new file mode 100644
index 0000000..1abf8a0
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MaskMetadata.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.dataset.IDataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes masking information associated with a dataset<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public interface MaskMetadata extends MetadataType {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Initialize mask<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param mask<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>        public void initialize(IDataset mask);<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>        /**<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * Get mask<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         * @return mask<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>        public IDataset getMask();<a name="line.32"></a>
+<span class="sourceLineNo">033</span>}<a name="line.33"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Metadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Metadata.html
new file mode 100644
index 0000000..3d001a5
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Metadata.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.ByteArrayInputStream;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.io.ByteArrayOutputStream;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.io.ObjectInputStream;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.io.ObjectOutputStream;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.io.Serializable;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Collection;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.Collections;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.HashMap;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.LinkedHashMap;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Map;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Map.Entry;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.eclipse.january.MetadataException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.eclipse.january.dataset.ShapeUtils;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * Basic implementation of metadata<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class Metadata implements IMetadata {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        private static final long serialVersionUID = IMetadata.serialVersionUID;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        private Map&lt;String, ? extends Serializable&gt; metadata;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        // NOTE shapes is LinkedHashMap here because the names collection<a name="line.38"></a>
+<span class="sourceLineNo">039</span>        // maintained order. Now that we do not need this collection but if we<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        // do not keep the shapes in a LinkedHashMap, we lose order.<a name="line.40"></a>
+<span class="sourceLineNo">041</span>        private Map&lt;String,int[]&gt; shapes = new LinkedHashMap&lt;String,int[]&gt;(7);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>        private Collection&lt;Serializable&gt; userObjects;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        private String filePath;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public Metadata() {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>        }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public Metadata(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>                initialize(metadata);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        @Override<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        public void initialize(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>                this.metadata = metadata;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>        @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public void addNames(Collection&lt;String&gt; names) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                if (names != null) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        for (String n : names) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                                shapes.put(n, null);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>                        }<a name="line.63"></a>
+<span class="sourceLineNo">064</span>                }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>        /**<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * Set metadata map<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         * @param metadata<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        @Override<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        public void setMetadata(Map&lt;String, ? extends Serializable&gt; metadata) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                this.metadata = metadata;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>        /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>         * Internal use only<a name="line.77"></a>
+<span class="sourceLineNo">078</span>         * @return metadata map<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        protected Map&lt;String, ? extends Serializable&gt; getInternalMetadata() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                return metadata;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Set user objects<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param objects<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        public void setUserObjects(Collection&lt;Serializable&gt; objects) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                userObjects = objects;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>        public void addDataInfo(String name, int... shape) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                shapes.put(name, shape);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        @Override<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        public Collection&lt;String&gt; getDataNames() {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>                return Collections.unmodifiableCollection(shapes.keySet());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>        @Override<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        public Map&lt;String, int[]&gt; getDataShapes() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>                return Collections.unmodifiableMap(shapes);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>        @Override<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        public Map&lt;String, Integer&gt; getDataSizes() {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>                Map&lt;String, Integer&gt; sizes = new HashMap&lt;String, Integer&gt;(1);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>                for (Entry&lt;String, int[]&gt; e : shapes.entrySet()) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>                        int[] shape = e.getValue();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                        if (shape != null &amp;&amp; shape.length &gt; 1)<a name="line.111"></a>
+<span class="sourceLineNo">112</span>                                sizes.put(e.getKey(), ShapeUtils.calcSize(shape));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>                        else<a name="line.113"></a>
+<span class="sourceLineNo">114</span>                                sizes.put(e.getKey(), null);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>                }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                if (sizes.size() &gt; 0) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>                        return Collections.unmodifiableMap(sizes);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>                }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>                return null;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>        @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        public Serializable getMetaValue(String key) throws MetadataException {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                return metadata == null ? null : metadata.get(key);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>        @SuppressWarnings("unchecked")<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        @Override<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        public Collection&lt;String&gt; getMetaNames() throws MetadataException {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>                return metadata == null ? (Collection&lt;String&gt;) Collections.EMPTY_SET : Collections.unmodifiableCollection(metadata.keySet());<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        public Collection&lt;Serializable&gt; getUserObjects() {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>                return userObjects;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>        @Override<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public IMetadata clone() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                Metadata c = null;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                try {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                        c = (Metadata) super.clone();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                        if (metadata != null) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                                HashMap&lt;String, Serializable&gt; md = new HashMap&lt;String, Serializable&gt;();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                                c.metadata = md;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                                ByteArrayOutputStream os = new ByteArrayOutputStream(512);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                                for (String k : metadata.keySet()) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                                        Serializable v = metadata.get(k);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                                        if (v != null) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                                                try (ObjectOutputStream oos = new ObjectOutputStream(os)) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                                        oos.writeObject(v);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                                                        try (ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(os.toByteArray()))) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                                                                Serializable nv = (Serializable) ois.readObject();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                                                                md.put(k, nv);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                                                        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                                                }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                                                os.reset();<a name="line.157"></a>
+<span class="sourceLineNo">158</span>                                        } else {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                                                md.put(k, null);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                                        }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                                }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                        }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                        c.shapes = new HashMap&lt;String, int[]&gt;(1);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                        for (Entry&lt;String, int[]&gt; e : shapes.entrySet()) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>                                int[] s = e.getValue();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>                                c.shapes.put(e.getKey(), s == null ? null : s.clone());<a name="line.166"></a>
+<span class="sourceLineNo">167</span>                        }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>                } catch (CloneNotSupportedException e) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>                        // Allowed for some objects not to be cloned.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>                } catch (Throwable e) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>                        if (e instanceof ClassNotFoundException) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>                                // Fix to http://jira.diamond.ac.uk/browse/SCI-1644<a name="line.172"></a>
+<span class="sourceLineNo">173</span>                                // Happens when cloning meta data with GridPreferences<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                        } if (e instanceof RuntimeException ) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                           throw (RuntimeException)e;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                        }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>                }<a name="line.177"></a>
+<span class="sourceLineNo">178</span>                return c;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>        @Override<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        public String getFilePath() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>                return filePath;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>        @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        public void setFilePath(String filePath) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>                this.filePath = filePath;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>}<a name="line.190"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MetadataFactory.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MetadataFactory.html
new file mode 100644
index 0000000..2b999b7
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MetadataFactory.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*******************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Copyright (c) 2016 Diamond Light Source Ltd. and others.<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * All rights reserved. This program and the accompanying materials<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * which accompanies this distribution, and is available at<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.6"></a>
+<span class="sourceLineNo">007</span> *<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * Contributors:<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *     Diamond Light Source Ltd - initial API and implementation<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *******************************************************************************/<a name="line.10"></a>
+<span class="sourceLineNo">011</span>package org.eclipse.january.metadata;<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>import java.lang.reflect.Method;<a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.HashMap;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.Map;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.MetadataException;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.eclipse.january.dataset.LazyDatasetBase;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.eclipse.january.metadata.internal.AxesMetadataImpl;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.eclipse.january.metadata.internal.DimensionMetadataImpl;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.eclipse.january.metadata.internal.ErrorMetadataImpl;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.eclipse.january.metadata.internal.MaskMetadataImpl;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.eclipse.january.metadata.internal.OriginMetadataImpl;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.eclipse.january.metadata.internal.PeemMetadataImpl;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.eclipse.january.metadata.internal.StatisticsMetadataImpl;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.eclipse.january.metadata.internal.UnitMetadataImpl;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>public class MetadataFactory {<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        private MetadataFactory() {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        }<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        static Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; metadataClasses = createMap();<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        private static Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; createMap() {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>                Map&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt; map = new HashMap&lt;Class&lt;? extends MetadataType&gt;, Class&lt;? extends MetadataType&gt;&gt;();<a name="line.35"></a>
+<span class="sourceLineNo">036</span>                map.put(IMetadata.class, Metadata.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>                map.put(ErrorMetadata.class, ErrorMetadataImpl.class);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>                map.put(AxesMetadata.class, AxesMetadataImpl.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>                map.put(DimensionMetadata.class, DimensionMetadataImpl.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>                map.put(MaskMetadata.class, MaskMetadataImpl.class);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>                map.put(OriginMetadata.class, OriginMetadataImpl.class);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>                map.put(PeemMetadata.class, PeemMetadataImpl.class);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>                map.put(StatisticsMetadata.class, StatisticsMetadataImpl.class);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>                map.put(UnitMetadata.class, UnitMetadataImpl.class);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>                return map;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>        <a name="line.48"></a>
+<span class="sourceLineNo">049</span>        /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         * Create a metadata object of given class with given arguments<a name="line.50"></a>
+<span class="sourceLineNo">051</span>         * @param clazz<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * @param arguments these must match the arguments given in the initialize method specified in the class<a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @return metadata object or null if type not available<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @throws MetadataException if the class cannot be instantiated, the initialize method does not exist, or<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         *  the initialize method could not be called successfully<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        public static &lt;T extends MetadataType&gt; T createMetadata(Class&lt;T&gt; clazz, Object... arguments) throws MetadataException {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>                @SuppressWarnings("unchecked")<a name="line.58"></a>
+<span class="sourceLineNo">059</span>                Class&lt;T&gt; mdClass = (Class&lt;T&gt;) metadataClasses.get(clazz);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>                if (mdClass == null) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>                        return null;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>                }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>                T obj = null;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                try {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>                        obj = mdClass.newInstance();<a name="line.66"></a>
+<span class="sourceLineNo">067</span>                } catch (Exception e) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                        throw new MetadataException("Could not create metadata object", e);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>                try {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>                        for (Method m : mdClass.getMethods()) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>                                if (m.getName().equals("initialize")) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>                                        m.invoke(obj, arguments);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>                                        return obj;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>                                }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>                        }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>                } catch (Exception e) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>                        throw new MetadataException("Could not initialize object", e);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>                throw new MetadataException("Could not find initialize method");<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * Register metadata class<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param clazz<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        public static &lt;T extends MetadataType&gt; void registerClass(Class&lt;T&gt; clazz) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>                Class&lt;? extends MetadataType&gt; iClass = LazyDatasetBase.findMetadataTypeSubInterfaces(clazz);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>                metadataClasses.put(iClass, clazz);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>}<a name="line.93"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MetadataType.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MetadataType.html
new file mode 100644
index 0000000..75dddf7
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/MetadataType.html
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.io.Serializable;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.dataset.IMetadataProvider;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * This is a marker interface for all metadata items which can be associated<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * with a dataset.<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * &lt;p&gt;<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * All sub-interfaces must have an initialize method and all implementations<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * must have a null constructor.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * &lt;p&gt;<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * Extending sub-interfaces of MetadataType is strongly discouraged. That is,<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * metadata interfaces (sub-interfaces of MetadataType) should be considered<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * to be "final". This simplifies the implementation of {@link IMetadataProvider#getMetadata(Class)}, etc.<a name="line.28"></a>
+<span class="sourceLineNo">029</span> */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>public interface MetadataType extends Serializable, Cloneable {<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * Make a deep copy of metadata<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * @return clone<a name="line.34"></a>
+<span class="sourceLineNo">035</span>         */<a name="line.35"></a>
+<span class="sourceLineNo">036</span>        public MetadataType clone();<a name="line.36"></a>
+<span class="sourceLineNo">037</span>}<a name="line.37"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/OriginMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/OriginMetadata.html
new file mode 100644
index 0000000..4051bd1
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/OriginMetadata.html
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.dataset.ILazyDataset;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.eclipse.january.dataset.Slice;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>/**<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * Defines the origin of a dataset which is a slice of a parent dataset<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public interface OriginMetadata extends DimensionMetadata {<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * Initialize origin of dataset<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param parent<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param outSlice<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         * @param dataDims<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param filePath<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         * @param datasetName<a name="line.29"></a>
+<span class="sourceLineNo">030</span>         */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>        public void initialize(ILazyDataset parent, Slice[] outSlice, int[] dataDims, String filePath, String datasetName);<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>        /**<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         * <a name="line.34"></a>
+<span class="sourceLineNo">035</span>         * @return ILazyDataset<a name="line.35"></a>
+<span class="sourceLineNo">036</span>         */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        public ILazyDataset getParent();<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        <a name="line.38"></a>
+<span class="sourceLineNo">039</span>        /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>         * The starting slice<a name="line.40"></a>
+<span class="sourceLineNo">041</span>         * @return the initial slice<a name="line.41"></a>
+<span class="sourceLineNo">042</span>         */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        public Slice[] getSliceFromInput();<a name="line.43"></a>
+<span class="sourceLineNo">044</span>        <a name="line.44"></a>
+<span class="sourceLineNo">045</span>        /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>         * <a name="line.46"></a>
+<span class="sourceLineNo">047</span>         * @return name of dataset<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        public String getDatasetName();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>        <a name="line.50"></a>
+<span class="sourceLineNo">051</span>        /**<a name="line.51"></a>
+<span class="sourceLineNo">052</span>         * <a name="line.52"></a>
+<span class="sourceLineNo">053</span>         * @return file path<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        public String getFilePath();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        <a name="line.56"></a>
+<span class="sourceLineNo">057</span>        /**<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         * Current slice information.<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         * @return the current slice.<a name="line.59"></a>
+<span class="sourceLineNo">060</span>         */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        public Slice[] getSliceInOutput();<a name="line.61"></a>
+<span class="sourceLineNo">062</span>        <a name="line.62"></a>
+<span class="sourceLineNo">063</span>}<a name="line.63"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/PeemMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/PeemMetadata.html
new file mode 100644
index 0000000..3244f74
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/PeemMetadata.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.eclipse.january.metadata.MetadataType;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes Peem-related information<a name="line.18"></a>
+<span class="sourceLineNo">019</span> */<a name="line.19"></a>
+<span class="sourceLineNo">020</span>public interface PeemMetadata extends MetadataType {<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>        /**<a name="line.22"></a>
+<span class="sourceLineNo">023</span>         * Initialize PEEM metadata<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * @param xyPosition<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @param scaling<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         * @param fieldOfView<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         */<a name="line.27"></a>
+<span class="sourceLineNo">028</span>        public void initialize(double[] xyPosition, double scaling, double fieldOfView);<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>        /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>         * <a name="line.31"></a>
+<span class="sourceLineNo">032</span>         * @return X/y motor position in microns<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>        public double[] getXYMotorPosition();<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>        /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>         * <a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @return scaling value micron/pixel<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public double getScaling();<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * <a name="line.43"></a>
+<span class="sourceLineNo">044</span>         * @return field of view value in microns<a name="line.44"></a>
+<span class="sourceLineNo">045</span>         */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>        public double getFieldOfView();<a name="line.46"></a>
+<span class="sourceLineNo">047</span>//<a name="line.47"></a>
+<span class="sourceLineNo">048</span>//      /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>//       * Image rotation (motor x-axis angle with respect to camera x-axis)<a name="line.49"></a>
+<span class="sourceLineNo">050</span>//       * @return angular rotation in degrees <a name="line.50"></a>
+<span class="sourceLineNo">051</span>//       */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>//      public double getRotation();<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>        /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * Sets X/y motor position in microns<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * @param xyMotorPosition<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        void setXYMotorPosition(double[] xyMotorPosition);<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>        /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>         * Sets scaling micron/pixel<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param scaling<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         */<a name="line.63"></a>
+<span class="sourceLineNo">064</span>        void setScaling(double scaling);<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>        /**<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         * Sets fieldOfView value in microns<a name="line.67"></a>
+<span class="sourceLineNo">068</span>         * @param fieldOfView<a name="line.68"></a>
+<span class="sourceLineNo">069</span>         */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        void setFieldOfView(double fieldOfView);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>//      /**<a name="line.72"></a>
+<span class="sourceLineNo">073</span>//       * Sets rotation angular value in degree<a name="line.73"></a>
+<span class="sourceLineNo">074</span>//       * Image rotation (motor x-axis angle with respect to camera x-axis)<a name="line.74"></a>
+<span class="sourceLineNo">075</span>//       * @param rotation<a name="line.75"></a>
+<span class="sourceLineNo">076</span>//       */<a name="line.76"></a>
+<span class="sourceLineNo">077</span>//      void setRotation(double rotation);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>}<a name="line.78"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Reshapeable.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Reshapeable.html
new file mode 100644
index 0000000..2bff739
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Reshapeable.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.lang.annotation.ElementType;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.annotation.Retention;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.annotation.RetentionPolicy;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.annotation.Target;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This is an annotation for any metadata field that should be reshaped or squeezed. These include<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * lazy datasets, arrays and lists of lazy datasets, and maps where the values are lazy datasets.<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.24"></a>
+<span class="sourceLineNo">025</span>@Target(value = ElementType.FIELD)<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public @interface Reshapeable {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        /**<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @return true if size of top-level array or list should match rank of dataset<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        boolean matchRank() default false;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>}<a name="line.31"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Sliceable.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Sliceable.html
new file mode 100644
index 0000000..7723920
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Sliceable.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.lang.annotation.ElementType;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.annotation.Retention;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.annotation.RetentionPolicy;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.annotation.Target;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This is an annotation for any metadata field that should be sliced. These include lazy datasets,<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * arrays and lists of lazy datasets, and maps where the values are lazy datasets.<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.24"></a>
+<span class="sourceLineNo">025</span>@Target(value = ElementType.FIELD)<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public @interface Sliceable {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>}<a name="line.27"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/StatisticsMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/StatisticsMetadata.html
new file mode 100644
index 0000000..fca62d1
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/StatisticsMetadata.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2017 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.List;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.eclipse.january.dataset.Dataset;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Store standard statistics<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * @param &lt;T&gt; is either a Number or a double array<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * @since 2.0<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>public interface StatisticsMetadata&lt;T&gt; extends MetadataType {<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>        /**<a name="line.26"></a>
+<span class="sourceLineNo">027</span>         *<a name="line.27"></a>
+<span class="sourceLineNo">028</span>         * @param dataset<a name="line.28"></a>
+<span class="sourceLineNo">029</span>         */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>        public void initialize(Dataset dataset);<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>        /**<a name="line.32"></a>
+<span class="sourceLineNo">033</span>         * Call to indicate dataset has been modified so statistics are not up-to-date<a name="line.33"></a>
+<span class="sourceLineNo">034</span>         */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>        public void setDirty();<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>        /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>         * @return true if dataset has been modified<a name="line.38"></a>
+<span class="sourceLineNo">039</span>         */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>        public boolean isDirty();<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>        /**<a name="line.42"></a>
+<span class="sourceLineNo">043</span>         * @param hash the hash to set<a name="line.43"></a>
+<span class="sourceLineNo">044</span>         */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        public void setHash(int hash);<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>        /**<a name="line.47"></a>
+<span class="sourceLineNo">048</span>         * @param shape<a name="line.48"></a>
+<span class="sourceLineNo">049</span>         * @return the hash<a name="line.49"></a>
+<span class="sourceLineNo">050</span>         */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>        public int getHash(int[] shape);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>        /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>         * @param ignoreInvalids - Can be null, one boolean, or two booleans. By default, both are false. If<a name="line.54"></a>
+<span class="sourceLineNo">055</span>         * the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to<a name="line.55"></a>
+<span class="sourceLineNo">056</span>         * ignore infinities separately.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>         * @return the maximum<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        public T getMaximum(boolean... ignoreInvalids);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>        /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>         * @param maximum the maximum to set<a name="line.62"></a>
+<span class="sourceLineNo">063</span>         * @param minimum the minimum to set<a name="line.63"></a>
+<span class="sourceLineNo">064</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        @Deprecated<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        public void setMaximumMinimum(T maximum, T minimum, boolean... ignoreInvalids);<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>        /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         * @param maximum the maximum to set<a name="line.70"></a>
+<span class="sourceLineNo">071</span>         * @param minimum the minimum to set<a name="line.71"></a>
+<span class="sourceLineNo">072</span>         * @param sum the sum to set<a name="line.72"></a>
+<span class="sourceLineNo">073</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         * @since 2.1<a name="line.74"></a>
+<span class="sourceLineNo">075</span>         */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        public void setMaximumMinimumSum(T maximum, T minimum, T sum, boolean... ignoreInvalids);<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>        /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>         * @param maximumPositions the maximum positions to set<a name="line.79"></a>
+<span class="sourceLineNo">080</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.80"></a>
+<span class="sourceLineNo">081</span>         */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        public void setMaximumPositions(List&lt;int[]&gt; maximumPositions, boolean... ignoreInvalids);<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>        /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>         * @param minimumPositions the minimum positions to set<a name="line.85"></a>
+<span class="sourceLineNo">086</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.86"></a>
+<span class="sourceLineNo">087</span>         */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        public void setMinimumPositions(List&lt;int[]&gt; minimumPositions, boolean... ignoreInvalids);<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>        /**<a name="line.90"></a>
+<span class="sourceLineNo">091</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.91"></a>
+<span class="sourceLineNo">092</span>         * @return the maximum positions<a name="line.92"></a>
+<span class="sourceLineNo">093</span>         */<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        public List&lt;int[]&gt; getMaximumPositions(boolean... ignoreInvalids);<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>        /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.97"></a>
+<span class="sourceLineNo">098</span>         * @return the minimum<a name="line.98"></a>
+<span class="sourceLineNo">099</span>         */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        public T getMinimum(boolean... ignoreInvalids);<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>        /**<a name="line.102"></a>
+<span class="sourceLineNo">103</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.103"></a>
+<span class="sourceLineNo">104</span>         * @return the minimum positions<a name="line.104"></a>
+<span class="sourceLineNo">105</span>         */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        public List&lt;int[]&gt; getMinimumPositions(boolean... ignoreInvalids);<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>        /**<a name="line.108"></a>
+<span class="sourceLineNo">109</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.109"></a>
+<span class="sourceLineNo">110</span>         * @return the number of samples<a name="line.110"></a>
+<span class="sourceLineNo">111</span>         */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        public long getCount(boolean... ignoreInvalids);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>        /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.115"></a>
+<span class="sourceLineNo">116</span>         * @return the mean of samples<a name="line.116"></a>
+<span class="sourceLineNo">117</span>         */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        public T getMean(boolean... ignoreInvalids);<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>        /**<a name="line.120"></a>
+<span class="sourceLineNo">121</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.121"></a>
+<span class="sourceLineNo">122</span>         * @return the sum of samples<a name="line.122"></a>
+<span class="sourceLineNo">123</span>         */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        public T getSum(boolean... ignoreInvalids);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>        /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>         * @param isWholePopulation<a name="line.127"></a>
+<span class="sourceLineNo">128</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.128"></a>
+<span class="sourceLineNo">129</span>         * @return the variance of samples<a name="line.129"></a>
+<span class="sourceLineNo">130</span>         */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        public double getVariance(boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>        /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>         * @param ignoreInvalids - Can be null, one boolean, or two booleans. By default, both are false. If<a name="line.134"></a>
+<span class="sourceLineNo">135</span>         * the first boolean is true, will ignore NaNs and ignore infinities. Use the second boolean to<a name="line.135"></a>
+<span class="sourceLineNo">136</span>         * ignore infinities separately.<a name="line.136"></a>
+<span class="sourceLineNo">137</span>         * @return the maximum<a name="line.137"></a>
+<span class="sourceLineNo">138</span>         */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        public Dataset getMaximum(int axis, boolean... ignoreInvalids);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>        /**<a name="line.141"></a>
+<span class="sourceLineNo">142</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.142"></a>
+<span class="sourceLineNo">143</span>         * @return the minimum<a name="line.143"></a>
+<span class="sourceLineNo">144</span>         */<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        public Dataset getMinimum(int axis, boolean... ignoreInvalids);<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>        /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.148"></a>
+<span class="sourceLineNo">149</span>         * @return the argument at which the maximum first occurs<a name="line.149"></a>
+<span class="sourceLineNo">150</span>         */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        public Dataset getArgMaximum(int axis, boolean... ignoreInvalids);<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>        /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.154"></a>
+<span class="sourceLineNo">155</span>         * @return the argument at which the minimum first occurs<a name="line.155"></a>
+<span class="sourceLineNo">156</span>         */<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        public Dataset getArgMinimum(int axis, boolean... ignoreInvalids);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>        // TODO LongDataset<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.161"></a>
+<span class="sourceLineNo">162</span>         * @return the number of samples<a name="line.162"></a>
+<span class="sourceLineNo">163</span>         */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        public Dataset getCount(int axis, boolean... ignoreInvalids);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>        /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         * @return the mean of samples<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        public Dataset getMean(int axis, boolean... ignoreInvalids);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>        /**<a name="line.172"></a>
+<span class="sourceLineNo">173</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.173"></a>
+<span class="sourceLineNo">174</span>         * @return the sum of samples<a name="line.174"></a>
+<span class="sourceLineNo">175</span>         */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        public Dataset getSum(int axis, boolean... ignoreInvalids);<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>        /**<a name="line.178"></a>
+<span class="sourceLineNo">179</span>         * @param isWholePopulation<a name="line.179"></a>
+<span class="sourceLineNo">180</span>         * @param ignoreInvalids @see {@link #getMaximum(boolean...)} for explanation<a name="line.180"></a>
+<span class="sourceLineNo">181</span>         * @return the variance of samples<a name="line.181"></a>
+<span class="sourceLineNo">182</span>         */<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        public Dataset getVariance(int axis, boolean isWholePopulation, boolean... ignoreInvalids);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>}<a name="line.184"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Transposable.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Transposable.html
new file mode 100644
index 0000000..6029e6f
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/Transposable.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.lang.annotation.ElementType;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import java.lang.annotation.Retention;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import java.lang.annotation.RetentionPolicy;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.lang.annotation.Target;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>/**<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * This is an annotation for any metadata field that should be transposed. These include lazy datasets,<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * arrays and lists of lazy datasets, and maps where the values are lazy datasets.<a name="line.22"></a>
+<span class="sourceLineNo">023</span> */<a name="line.23"></a>
+<span class="sourceLineNo">024</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.24"></a>
+<span class="sourceLineNo">025</span>@Target(value = ElementType.FIELD)<a name="line.25"></a>
+<span class="sourceLineNo">026</span>public @interface Transposable {<a name="line.26"></a>
+<span class="sourceLineNo">027</span>}<a name="line.27"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/src-html/org/eclipse/january/metadata/UnitMetadata.html b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/UnitMetadata.html
new file mode 100644
index 0000000..3a23f9d
--- /dev/null
+++ b/apidocs/2.1.1/src-html/org/eclipse/january/metadata/UnitMetadata.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
+<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *******************************************************************************/<a name="line.11"></a>
+<span class="sourceLineNo">012</span><a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.eclipse.january.metadata;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import javax.measure.Unit;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>/**<a name="line.17"></a>
+<span class="sourceLineNo">018</span> * This metadata describes the unit associated with the quantity stored in a dataset<a name="line.18"></a>
+<span class="sourceLineNo">019</span> * @since 2.1<a name="line.19"></a>
+<span class="sourceLineNo">020</span> */<a name="line.20"></a>
+<span class="sourceLineNo">021</span>public interface UnitMetadata extends MetadataType {<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>        /**<a name="line.23"></a>
+<span class="sourceLineNo">024</span>         * Get unit<a name="line.24"></a>
+<span class="sourceLineNo">025</span>         * @return unit of dataset<a name="line.25"></a>
+<span class="sourceLineNo">026</span>         */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>        public Unit&lt;?&gt; getUnit();<a name="line.27"></a>
+<span class="sourceLineNo">028</span>}<a name="line.28"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/2.1.1/stylesheet.css b/apidocs/2.1.1/stylesheet.css
new file mode 100644
index 0000000..0aeaa97
--- /dev/null
+++ b/apidocs/2.1.1/stylesheet.css
@@ -0,0 +1,474 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:Arial, Helvetica, sans-serif;
+    font-size:76%;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4c6b87;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-size:1.3em;
+}
+h1 {
+    font-size:1.8em;
+}
+h2 {
+    font-size:1.5em;
+}
+h3 {
+    font-size:1.4em;
+}
+h4 {
+    font-size:1.3em;
+}
+h5 {
+    font-size:1.2em;
+}
+h6 {
+    font-size:1.1em;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-size:1.2em;
+}
+dt code {
+    font-size:1.2em;
+}
+table tr td dt code {
+    font-size:1.2em;
+    vertical-align:top;
+}
+sup {
+    font-size:.6em;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:.8em;
+    z-index:200;
+    margin-top:-7px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    background-image:url(resources/titlebar.gif);
+    background-position:left top;
+    background-repeat:no-repeat;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:1em;
+    margin:0;
+}
+.topNav {
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.bottomNav {
+    margin-top:10px;
+    background-image:url(resources/background.gif);
+    background-repeat:repeat-x;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+}
+.subNav {
+    background-color:#dee3e9;
+    border-bottom:1px solid #9eadc0;
+    float:left;
+    width:100%;
+    overflow:hidden;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding:3px 6px;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+    font-size:90%;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+.navBarCell1Rev {
+    background-image:url(resources/tab.gif);
+    background-color:#a88834;
+    color:#FFFFFF;
+    margin: auto 5px;
+    border:1px solid #c9aa44;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader h1 {
+    font-size:1.3em;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 25px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:1.2em;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    margin:0 0 6px -8px;
+    padding:2px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:1.0em;
+}
+.indexContainer h2 {
+    font-size:1.1em;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:1.1em;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:10px 0 10px 20px;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:25px;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #9eadc0;
+    background-color:#f9f9f9;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:1px solid #9eadc0;
+    border-top:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+    border-bottom:1px solid #9eadc0;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.contentContainer table, .classUseContainer table, .constantValuesContainer table {
+    border-bottom:1px solid #9eadc0;
+    width:100%;
+}
+.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
+    width:100%;
+}
+.contentContainer .description table, .contentContainer .details table {
+    border-bottom:none;
+}
+.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
+    vertical-align:top;
+    padding-right:20px;
+}
+.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
+.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
+.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
+.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
+    padding-right:3px;
+}
+.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#FFFFFF;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    margin:0px;
+}
+caption a:link, caption a:hover, caption a:active, caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
+    white-space:nowrap;
+    padding-top:8px;
+    padding-left:8px;
+    display:block;
+    float:left;
+    background-image:url(resources/titlebar.gif);
+    height:18px;
+}
+.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
+    width:10px;
+    background-image:url(resources/titlebar_end.gif);
+    background-repeat:no-repeat;
+    background-position:top right;
+    position:relative;
+    float:left;
+}
+ul.blockList ul.blockList li.blockList table {
+    margin:0 0 12px 0px;
+    width:100%;
+}
+.tableSubHeadingColor {
+    background-color: #EEEEFF;
+}
+.altColor {
+    background-color:#eeeeef;
+}
+.rowColor {
+    background-color:#ffffff;
+}
+.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
+    background:#dee3e9;
+    border-top:1px solid #9eadc0;
+    border-bottom:1px solid #9eadc0;
+    text-align:left;
+    padding:3px 3px 3px 7px;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+td.colFirst, th.colFirst {
+    border-left:1px solid #9eadc0;
+    white-space:nowrap;
+}
+td.colLast, th.colLast {
+    border-right:1px solid #9eadc0;
+}
+td.colOne, th.colOne {
+    border-right:1px solid #9eadc0;
+    border-left:1px solid #9eadc0;
+}
+table.overviewSummary  {
+    padding:0px;
+    margin-left:0px;
+}
+table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
+table.overviewSummary td.colOne, table.overviewSummary th.colOne {
+    width:25%;
+    vertical-align:middle;
+}
+table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
+    width:25%;
+    vertical-align:middle;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:.9em;
+}
+.block {
+    display:block;
+    margin:3px 0 0 0;
+}
+.strong {
+    font-weight:bold;
+}
diff --git a/apidocs/latest b/apidocs/latest
index 50aea0e..7c32728 120000
--- a/apidocs/latest
+++ b/apidocs/latest
@@ -1 +1 @@
-2.1.0
\ No newline at end of file
+2.1.1
\ No newline at end of file
diff --git a/index.html b/index.html
index ec79f1a..4c229fc 100644
--- a/index.html
+++ b/index.html
@@ -230,8 +230,8 @@
 									<p>
                     <b>Update Sites:</b>
                     <br>
-                    <a href="http://download.eclipse.org/january/releases/2.1/repository">Eclipse January 2.1.0</a>
-										(<a href="http://download.eclipse.org/january/releases/2.1/repository.zip">zip</a>)
+                    <a href="http://download.eclipse.org/january/releases/2.1.1/repository">Eclipse January 2.1.0</a>
+										(<a href="http://download.eclipse.org/january/releases/2.1.1/repository.zip">zip</a>)
 										<br><br>
 										<b>Want more?</b>
 	                  <br>
